java - 为什么 System.out.println(-1<<32)=-1 在 Java 中?

标签 java

为什么 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/

相关文章:

java - 为什么在尝试填充数组时,我会收到 NullPointerException?

java - 是否可以在 J2SE 中使用 OWASP ESAPI 进行encodeForURL?

java - 当 Maven war 插件找不到 webResource 目录时,如何避免构建失败?

java - 我应该在模型中使用 HttpStatus 抛出异常吗?

java - 在 ArrayList 中搜索字符串;总是返回 false

java - 缩放读取大型 XML 文件的应用程序

java - Spring框架中如何使用display标签跳转到特定页码

java - Hadoop/Eclipse - 线程 "main"java.lang.NoClassDefFoundError : org/apache/hadoop/fs/FileSystem 中的异常

java - 在 Windows 上使用 Apache tomcat 运行 jsp 文件

java - Hibernate 映射中的最佳获取实践(多对一)