gpt4 book ai didi

java - 低于 long 最大值的整数之和返回负值?

转载 作者:行者123 更新时间:2023-11-29 07:03:08 27 4
gpt4 key购买 nike

我有 5 个对象,abcde。 5个对象的hashcode如下:

a => 72444
b => 110327396
c => 107151
d => 2017793190
e => 68574749

如你所见,都是正值。但是,当我将它们汇总为一个 long 变量时,结果为负值:

long sum = a+b+c+d+e;
System.out.println(sum); // prints -2098092366

这些整数的总和远低于 long 的最大值 (9223372036854775807),但它会产生负结果。为什么?

最佳答案

出现这种情况是因为你的变量都是int,所以你要int加法(会溢出),然后最后的结果会转成long.

您可以通过将第一个变量转换为 long 来解决此问题:

long sum = (long)a + b + c + d + e;

关于java - 低于 long 最大值的整数之和返回负值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22935818/

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