将两个 Int 的总和存储在 Java 中的 Long 中

Storing the sum of two Ints in a Long in Java

我想做的基本上是将两个int值存储在两个变量中,然后将这两个int运算的值存储在一个long中。我的代码是:

int operand1 = 2147483647;
int operand2 = 1; 
long longValue = operand1 + operand2;

我遇到的问题是我需要 longValue 也等于 2147483648 而不是 -2147483648 因为它正在环绕它。我需要 operand1 和 2 都保持为整数。非常感谢任何帮助!

将两个整数都转换为长整数。

long longValue = ((long)operand1) + ((long)operand2)
int operand1 = 2147483647;
int operand2 = 1; 
long longValue = (long) operand1 + operand2;

仅转换第一个操作数 1 就足够了,即使操作数 1 = 1 和操作数 2 = 2147483647,因为 long + int 自动转换为 long。

正如其他人所说,解决方案是将赋值的 RHS(右侧)上的一个(或两个)操作数强制转换为 long。当有一个 + 操作,操作数为 int,另一个操作数为 long 时,JLS 表示程序会将 int 操作数转换为 long并使用 64 位算法执行操作。

在您编写的代码中,JLS 表示应使用 32 位算法添加两个 int 值。 32 位到 64 位的转换发生在之后,因为正在分配值。

试一试,

long longValue = new Long(operand1) + new Long(operand2);