当要为整数类型,如int类型赋值时,若赋值右侧的数据范围大于int类型的最大值时,就会发生整数溢出的问题。
如:
int m = Interger.MAX_VALUE/2 + 1; int n = Interger.MAX_VALUE/2 + 1; int overflow = m + n;
最终得到的答案overflow会超过int所能存储的最大范围,编程得到的答案为-2147483648
可以在进行计算时,采用强制类型转换的方式,使其变为范围更大的类型,并使用范围更大的类型进行接收。
如在上面的例子中,我们可以把代码第三行改为:
long overflow = m+n;
这样就能得到正确答案2147483648



