我正在尝试了解轮班经营者,但收获不多。当我尝试执行以下代码时
System.out.println(Integer.toBinaryString(2 << 11)); System.out.println(Integer.toBinaryString(2 << 22)); System.out.println(Integer.toBinaryString(2 << 33)); System.out.println(Integer.toBinaryString(2 << 44)); System.out.println(Integer.toBinaryString(2 << 55));
我得到以下
1000000000000 100000000000000000000000 100 10000000000000 1000000000000000000000000
有人可以解释一下吗?
System.out.println(Integer.toBinaryString(2 << 11));
将二进制2(10)向左移动11次。因此:1000000000000
10
System.out.println(Integer.toBinaryString(2 << 22));
将二进制2(10)向左移动22次。因此:100000000000000000000000
100000000000000000000000
System.out.println(Integer.toBinaryString(2 << 33));
现在,int为4字节,因此为32位。因此,当你偏移33时,它等效于偏移1。因此:100