//例子1
static int addInt(int x, int y) {
if (x > 0 && y > 0 && x > Integer.MAX_VALUE - y)
return Integer.MAX_VALUE;
if (x < 0 && y < 0 && x < Integer.MIN_VALUE - y)
return Integer.MIN_VALUE;
return x + y;
}
//例子2
static int addInt2(int a, int b) {
int x = a + b;
if ((x ^ a) < 0 && (x ^ b) < 0) {
// overflow, do something
System.out.println("overflow!");
}
return x;
}