使用正数在Java中以乘法给出负值的整数

使用正数在Java中以乘法给出负值的整数,第1张

使用正数在Java中以乘法给出负值的整数

溢出了32位整数的大小。

考虑当我等于10时会发生什么:

sum = sum + 100000000000 //1 with 11 zeroes

但是可以存储在32位整数中的最大正数仅为20亿左右(2个带有9个零)。

实际上,情况变得更糟!中间计算将以有限的精度执行,并且一旦10 * 10 * 10 * 10
…的乘积溢出,那么10s将与一个奇怪的负数相乘,并且已经是错误的。

因此,最终得到的数字似乎并没有遵循任何算术规则,但实际上,一旦您知道原始整数的存储空间有限,它就非常有意义。

解决方案是使用64位

long
,希望您也不要溢出,如果需要的话,则需要
BigInteger



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5615920.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存