gpt4 book ai didi

java - java中的整数溢出

转载 作者:行者123 更新时间:2023-12-02 09:00:27 25 4
gpt4 key购买 nike

我认为以下代码无法编译。然而运行后我得到了意想不到的结果,我不明白它是如何打印 -2 ?你能解释一下这里的加法是如何完成的吗?

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

欢迎任何解释

最佳答案

简短回答:当 Java 整数达到最大值加一时,它们会再次从最小值开始。就像绕了一圈。

之所以会这样,是因为整数的技术表示形式是位。想象一下,有 3 位可用来表示一个数字。你可能有数字 111。如果你加 1,你最终会得到 1000,但由于你只有 3 位可用,它会切断第一个,最终得到 000,这就是为什么你处于最小值最大值加1后再次值。

关于java - java中的整数溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60209111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com