编程语言
首页 > 编程语言> > 轮班运算符如何在Java中工作?

轮班运算符如何在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