将所有1移出-1整数会产生-1而不是0。
我尝试将一个字节移位8并得到0,这是我所期望的。 我还尝试将-2移31个位并得到0。
public static void main(String[] args) {
System.out.println(Integer.toBinaryString(-1<<31)+" : "+(-1<<31));
System.out.println(Integer.toBinaryString(-1<<32)+" : "+(-1<<32));
System.out.println(Integer.toBinaryString(-2<<31)+" : "+(-2<<31));
byte b=-1;
b<<=8;
int i =-1;
i<<=32;
int j =-2;
j<<=31;
System.out.println(b);
System.out.println(i);
System.out.println(j);
}
10000000000000000000000000000000 : -2147483648
11111111111111111111111111111111 : -1
0 : 0
0
-1
0