轮班运算符如何在Java中工作?
作者:互联网
参见英文答案 > What are bitwise shift (bit-shift) operators and how do they work? 9个
我试图了解班次操作符,并没有得到太多.
当我尝试执行以下代码时
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
System.out.println(Integer.toBinaryString(2 << 22));
将二进制2(10)向左移动22次.因此:100000000000000000000000
System.out.println(Integer.toBinaryString(2 << 33));
现在,int是4个字节,因此是32位.所以当你换班33时,相当于换班1.因此:100
标签:java,bit-shift 来源: https://codeday.me/bug/20190915/1806331.html