>>和>>>都表示右移,区别在于:
1、>>运算符,如果该数为正,则高位补0,若为负数,则高位补1.
如:int i=15;其二进制为(00001111),i>>2结果为3,移出的部分被抛弃(00000011)
如:int i=-6;其二进制补码(11111111111111111111111111111010),i>>2结果为-2
System.out.println((15)>>2);
System.out.println((-6)>>2);
System.out.println(Integer.toBinaryString(6));
System.out.print(Integer.toBinaryString(-6));
输出结果分别为
3
-2
110
11111111111111111111111111111010
2、>>>运算符,表示无符号右移,即无论是正数还是负数,右移后高位补0