Java运算符>、>>、>>>三者的区别
>表示大于,如:if(a>b)...结果是boolean类型
>>表示带符号右移,如:inti=15;i>>2的结果是3,移出的部分将被抛弃。
转为二进制的形式可能更好理解,00001111(15)右移2位的结果是00000011(3),00011010(18)右移3位的结果是00000011(3)。
>>>无符号右移:
按二进制形式把所有的数字向右移动对应巍峨位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。
其他结构和>>相似。
测试代码如下:
publicclassTest{ publicstaticvoidmain(String[]args){ System.out.println("1、以下测试>:"); inta=1,b=2; System.out.println(a>b); System.out.println("\n2、以下测试>>:"); System.out.println("15>>2="+(15>>2)); System.out.println("\n3、以下测试>>>:"); for(inti=0;i<10;i++){ for(intj=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填充
<<=左移赋值