• Java运算符>、>>、>>>三者的区别


    >表示大于,如:if(a>b)...结果是boolean类型

    >>表示带符号右移,如:int i=15; i>>2的结果是3,移出的部分将被抛弃。
    转为二进制的形式可能更好理解,0000 1111(15)右移2位的结果是0000 0011(3),0001 1010(18)右移3位的结果是0000 0011(3)。

    >>>无符号右移
    按二进制形式把所有的数字向右移动对应巍峨位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。
    其他结构和>>相似。

    测试代码如下:

    public class Test{  
      public static void main(String[] args){  
        System.out.println("1、以下测试>:");  
        int a = 1, b = 2;  
        System.out.println(a > b);  
        System.out.println("
    2、以下测试>>:");  
        System.out.println("15 >> 2 = " + (15 >> 2));  
        System.out.println("
    3、以下测试>>>:");  
        for (int i = 0; i < 10; i++){  
          for (int j = 0; j < 500; j = j + 5){  
            System.out.println(j / (int) (Math.pow(2, i)));  
            System.out.println(j >>> i);  
          }  
        }  
      } 
    }

    JAVA中其他位运算符:

    ~ 按位非(NOT)(一元运算) 
    & 按位与(AND) 
    | 按位或(OR) 
    ^ 按位异或(XOR) 
    >> 右移 
    >>> 右移,左边空出的位以0填充 
    << 左移 
    &= 按位与赋值 
    |= 按位或赋值 
    ^= 按位异或赋值 
    >>= 右移赋值 
    >>>= 右移赋值,左边空出的位以0填充 
    <<= 左移赋值

  • 相关阅读:
    jQuery源码笔记——四
    jQuery源码笔记——三
    jQuery源码笔记——二
    深度理解作用域链和闭包
    事务的传播机制
    Jvm的运行时数据区
    SpringBoot 工程结构
    MyBatis的<if>标签判空
    Redis学习
    MyBatis调用Oracle的存储过程
  • 原文地址:https://www.cnblogs.com/sanshao221/p/6530140.html
Copyright © 2020-2023  润新知