gpt4 book ai didi

java - 计算 Java Int 溢出

转载 作者:行者123 更新时间:2023-11-29 06:34:42 26 4
gpt4 key购买 nike

是否有计算 Java int 溢出的公式?

示例:如果我将 1 添加到 Integer.MAX_VALUE;,答案不是 2147483648,而是 -2147483648。

问题:如果我想计算对于大于 2^32 的值,Java 将打印什么,是否有简单的数学表达式(理论上的,而不是代码中的)?

最佳答案

((x + 231) 模 232) - 231

这是您要找的吗?这应该是在使用 32 位带符号 2 的补码整数的机器上任何数学运算的结果。也就是说,如果运算的数学值返回 x,则上述公式给出实际存储的整数(如果运算没有出错,并且不是“饱和”运算)。

请注意,我使用的是带有数学定义的“mod”,而不是 % 运算符在 Java 或 C 中的工作方式。也就是说,A mod B,其中 A 和 B 是整数, B > 0,总是返回 0 .. B-1 范围内的整数,例如(-1) mod 5 = 4。更具体地说,A mod B = A - B*floor(A/B)。

关于java - 计算 Java Int 溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23481107/

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