为什么 System.out.println(-1<<32)
展示-1
在 java ?有什么根本原因吗?我希望有人能解释一下!
最佳答案
在 Java(和 JavaScript)中,a << b
自动换行 b
模数字类型的位长度。你正在用 int
做这件事,即 32 位,32 % 32 = 0,因此,没有变化。您可以随时检查 b
超过(位长 - 1)并自动设置为零而不是移位。
关于java - 为什么 System.out.println(-1<<32)=-1 在 Java 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9882684/