处理两个较大的int值相加可能溢出的情况
public class jarTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 2147483647;
int b = 2147483647;
int c = a + b;
System.out.println(c); //输出结果为-2
}
}
输出结果为-2,a+b+2 = 0 显然是成立的,a+b出现了溢出的情况。Java的int数据类型是-2 147 483 648(-231)到2 147 483 647(231-1)。两个异号的int类型数字相加结果一定不会溢出,如果两个同号的int类型数字相加,可能出现溢出情况。
a+b+c的计算顺序为(a+b)+c,所以对于ThreeSum,只需要判断a+b是否有溢出(溢出结果不可能等于0),若溢出则a+b+c≠0。程序略。