当前位置: 首页 > 面试题库 >

System.out.println(4 * 2147483647)在Java中如何等于-4?

丁阳炎
2023-03-14
问题内容

我是Java初学者,对此很困惑。

System.out.println(4*2147483647)在Java中怎么等于-4?


问题答案:

这是由于整数静默溢出。

2147483647 == Integer.MAX_VALUE 是整数的最大值。

无声溢出意味着2147483647 + 1 == Integer.MIN_VALUE = -2147483648
您可以看到2147483647 + 2147483647 == 2147483647 + (-2147483648 + - 1) == -2

换句话说,2147483647 * 2 == -2现在您可以看到原因2147483647 * 4 == -4

从技术上讲,结果由Java语言规范#15.17.1定义:

如果整数乘法溢出,则结果是数学乘积的低阶位,以某种足够大的二进制补码格式表示。结果,如果发生溢出,则结果的符号可能与两个操作数值的数学积的符号不同。



 类似资料:
  • 我12哟,我学习Java,我想做如果语句时,它是超过1和小于或等于4,或只是2和4之间,但它不工作。我试过了 <代码>如果(4 它显示了这个错误

  • 问题内容: 首先感到遗憾的是,如果这是一个非常基本的问题,我建议我仍然是代码猴子。我在一次采访中被要求阐明System.out.println(); 我解释了以下方式 我已经解释说System.out是有效的,因为这是我们在Java中访问静态变量的方式,而out是PrintStream的对象,因此我们可以访问其方法。 他要求我模拟一个类似的程序,我跟踪了它,但是它没有用,因为System.out返

  • 问题内容: 正如我所知道的,我对xhr返回事件感到困惑, _onreadystatechange- > readyState == 4_与onload 之间并没有太大区别,这是真的吗? 要么 问题答案: 应该是同一回事。是在XMLHttpRequest 2中添加的,但自原始规范以来就存在。

  • 问题内容: 我变得有点疯狂,因为我找不到在将使用Maven构建的Java War项目中设置angular 4应用程序的指南。这是因为我想将其运行到wildfly服务器中。 有什么帮助吗? 谢谢 问题答案: 我有一个类似的要求,即要有一个源项目,其中要有Java Web服务项目以及angular项目(基于angular- cli的项目),并且maven构建应该在其中包含所有角度文件的情况下进行战争。

  • 问题内容: 我需要为设计欠佳的旧应用程序编写JUnit测试,并且正在向标准输出中写入许多错误消息。当方法正确运行时,它将返回XML响应: 但是,当XML格式错误或无法理解请求时,它将返回并将某些内容写入标准输出。 有什么方法可以在JUnit中声明控制台输出?要捕获类似的情况: 问题答案: 使用和很简单: 样本测试案例: 我使用此代码测试了命令行选项(断言-version输出版本字符串等)

  • 我完全理解为什么0.1 0.2不等于0.3,因为是浮点。在大多数编程语言中,是。 但是在Excel给出1