【发布时间】:2020-03-21 18:11:42
【问题描述】:
我是java语言的新手,这里m看不懂,为什么程序在两个满范围整数相加后返回-2。
class Variables {
public static void main(String[] args) {
int a = 2147483647;
int b = 2147483647;
long c = a + b;
System.out.println( c );
}
}
我在变量 c 中压缩了 4294967294 值,但为什么它返回 -2 请解释一下这背后的原因
【问题讨论】:
-
你刚刚到达整数溢出,int首先作为整数相加,然后转换为long,但为时已晚
-
建议 - 了解整数在内存/二进制中的表示方式。然后学习二进制加法。然后你会更好地理解
标签: java