思路:-32分别做>>>3和>>3的运算,然后看结果。
代码如下:
class Var
{
public static void main(String[] args)
{
int a=-32;
int b=-32;
a=a>>>3;
b=b>>3;
System.out.println(a+","+b);
}
}
结果A=536870908;B=-4。
(-32)的二进制表示为 (1111 1111 1111 1111 1111 1111 1110 0000);
A的结果用二进制表示为(0001 1111 1111 1111 1111 1111 1111 1100);
B的结果用二进制表示为(1111 1111 1111 1111 1111 1111 1111 1100)。
结论是“>>>”将32位整体右移,左边补1;
而">>"是将32位整体右移,左边补充原符号位值。