我想要做的是基本上将两个int值存储在两个变量中,然后将两个int的操作值存储在long中。我的代码是:
int operand1 = 2147483647;
int operand2 = 1;
long longValue = operand1 + operand2;
我遇到的问题是我需要longValue等于2147483648而不是-2147483648因为它正在包裹它。我需要operand1和2作为整数。非常感谢任何帮助!
答案 0 :(得分:4)
将两个整数投入多头。
long longValue = ((long)operand1) + ((long)operand2)
答案 1 :(得分:2)
}while(!buttonBackground.equals(R.drawable.redcircle));
仅转换第一个操作数1就足够了,甚至操作数1 = 1和操作数2 = 2147483647,因为long + int自动转储为long。
答案 2 :(得分:1)
正如其他人所说,解决方案是将赋值的RHS(右侧)中的一个(或两个)操作数转换为long
。如果+
操作的操作数为int
,另一个操作为long
,则JLS表示程序会将int
操作数转换为long
并使用64位算术执行操作。
在您编写的代码中,JLS表示应使用32位算术添加两个int
值。之后发生32位到64位转换,因为正在分配值。
答案 3 :(得分:1)
试试吧,
long longValue = new Long(operand1) + new Long(operand2);