将两个 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);
我想做的基本上是将两个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);