java中的整数溢出

5anewei6  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(405)

这个问题在这里已经有答案了

java是如何处理整数下溢和溢出的?您将如何检查它(12个答案)
11个月前关门了。
我认为下面的代码不会编译。但运行后,我得到了意想不到的结果,我不明白它是如何打印 -2 ? 你能解释一下加法是怎么做的吗?

int x = 2147483647+2147483647; // it compiles
System.out.print(x); // prints -2

欢迎解释

vhmi4jdf

vhmi4jdf1#

简而言之:当java整数达到最大值加1时,它们又从最小值开始。就像绕圈子一样。
这是因为整数的技术表示是位。想象一下用3位来表示一个数字。你可以打111号。如果你给它加1,你会得到1000,但因为你只有3位可用,它切断了第一位,你会得到000,这就是为什么你在最大值加1后又是最小值。

相关问题