zoukankan      html  css  js  c++  java
  • JAVA中的>>和>>>号以及<<号的作用

     1     public static void main(String[] args) {
     2         
     3         //右移2位,输出结果为2。二进制1000右移2位变为0010
     4         System.out.println(8>>2);
     5         //等同于 8除以2的3次方,即8/Math.pow(2,3)。输出为1
     6         System.out.println(8>>>3);
     7         
     8         //左移2位,输出结果为8。二进制0010左移2位变为1000
     9         System.out.println(2<<2);
    10         //语法错误,不支持
    11         System.out.println(8<<<3);
    12         
    13     }

    1、 >>带符号右移。正数右移高位补0,负数右移高位补1
    快速记忆:相当于除以一个值,正数除完后最小值为0,负数除完最大值为-1

    2、 >>>无符号右移。无论是正数还是负数,高位通通补0
    快速记忆:正数相当于除以一个值,最小值为0
    负数比较麻烦,暂时没有找到快速记忆方法,有同学知道的可以告知

    3、 <<表示左移,不分正负数,低位补0

    快速记忆:不管正负数,相当于乘以一个数

     1 public static void main(String[] args) {
     2         // >>带符号右移。正数右移高位补0,负数右移高位补1
     3         System.out.println("====================== >>带符号右移 =========================================");
     4         System.out.println("----------------正数举例----------------------");
     5         // 8的2进制表示为1000
     6         System.out.println(Integer.toBinaryString(8));
     7         // 输出向右移动两位
     8         System.out.println(8>>2);
     9         // 输出向右移动两位的二进制0010   即:十进制的2
    10         System.out.println(Integer.toBinaryString(8>>2));
    11         System.out.println("-----------------正数超出位数举例---------------------");
    12 
    13         System.out.println(Integer.toBinaryString(8));
    14         System.out.println(8>>6);
    15         System.out.println(Integer.toBinaryString(8>>6));
    16 
    17         System.out.println("----------------负数举例----------------------");
    18         System.out.println(Integer.toBinaryString(-8));
    19         System.out.println(-8>>2);
    20         System.out.println(Integer.toBinaryString(-8>>2));
    21         System.out.println("-----------------负数超出位数举例---------------------");
    22 
    23         System.out.println(Integer.toBinaryString(-8));
    24         System.out.println(-8>>6);
    25         System.out.println(Integer.toBinaryString(-8>>6));
    26         // >>>无符号右移。无论是正数还是负数,高位通通补0
    27         System.out.println("====================== >>>无符号右移 =========================================");
    28         System.out.println("----------------正数举例----------------------");
    29         System.out.println(Integer.toBinaryString(8));
    30         System.out.println(8>>>2);
    31         System.out.println(Integer.toBinaryString(8>>>2));
    32         System.out.println("-----------------正数超出位数举例---------------------");
    33 
    34         System.out.println(Integer.toBinaryString(8));
    35         System.out.println(8>>>6);
    36         System.out.println(Integer.toBinaryString(8>>>6));
    37 
    38         System.out.println("----------------负数举例----------------------");
    39         System.out.println(Integer.toBinaryString(-8));
    40         System.out.println(-8>>>2);
    41         System.out.println(Integer.toBinaryString(-8>>>2));
    42         System.out.println("-----------------负数超出位数举例---------------------");
    43         System.out.println(Integer.toBinaryString(-8));
    44         System.out.println(-8>>>6);
    45         System.out.println(Integer.toBinaryString(-8>>>6));
    46         // <<表示左移,不分正负数,低位补0
    47         System.out.println("====================== <<左移 =========================================");
    48         System.out.println("----------------正数举例----------------------");
    49         System.out.println(Integer.toBinaryString(8));
    50         System.out.println(8<<2);
    51         System.out.println(Integer.toBinaryString(8<<2));
    52 
    53         System.out.println("----------------负数举例----------------------");
    54         System.out.println(Integer.toBinaryString(-8));
    55         System.out.println(-8<<2);
    56         System.out.println(Integer.toBinaryString(-8<<2));
    57     }
  • 相关阅读:
    Java连载63-异常处理try...catch...、方法getMessageyu printStackTrace
    Python连载58-http协议简介
    Java连载62-使用throws关键字处理异常
    HTML连载57-相对定位和绝对定位
    Java连载61-异常的机制与分类
    Python连载57- 邮件头和主题、解析邮件
    Java连载60-类之间的六种关系
    [Java] 数据库编程JDBC
    [bug] MySQL-Front连接MySQL 8.0失败
    [bug]mysql: The server time zone value '&#214;&#208;&#185;&#250;&#177;&#234;&#215;&#188;&#202;&#177;&#188;&#228;' is unrecognized or represents more than one time zone
  • 原文地址:https://www.cnblogs.com/liangzs/p/6734084.html
Copyright © 2011-2022 走看看