int最大值和最小值计算
// 2147483647 二进制是:01111111111111111111111111111111
int a = Integer.MAX_VALUE;
// -2147483648 二进制是:10000000000000000000000000000000
int b = Integer.MIN_VALUE;
// true 意思就是01111111111111111111111111111111 + 1 = 10000000000000000000000000000000
// 相当于 2147483647 + 1 = -2147483648
System.out.println(a+1);
// 意思就是2147483647 + 2147483647 = 2147483647 + 1 + 2147483646
// = -2147483648 + 2147483646
// = -2
System.out.println(a*2);
2、Integer.MIN_VALUE*2
// 2147483647 二进制是:01111111111111111111111111111111
int a = Integer.MAX_VALUE;
// -2147483648 二进制是:10000000000000000000000000000000
int b = Integer.MIN_VALUE;
// 意思就是:10000000000000000000000000000000 - 1 = 01111111111111111111111111111111
// 相当于-2147483648 - 1 = 2147483647
System.out.println(b-1);
// 意思就是-2147483648 + (-2147483648) = -2147483648 - 2147483648
// = -2147483648 -1 - 2147483647
// = 2147483647 - 2147483647
// = 0
// 最小值*偶数 = 0; 最小值*奇数 = 最小值
System.out.println(b*0);
Java整数溢出与取值边界计算解析
本文探讨了Java中Integer类型的MAX_VALUE和MIN_VALUE在进行数学运算时可能出现的溢出现象。通过示例展示了当超过最大值加1会得到最小值,以及最小值减1变为最大值的特殊情况。同时,解释了最小值乘以偶数得到0的原因,以及最小值乘以奇数仍为最小值的逻辑。这些内容对于理解Java整数运算的边界行为至关重要。
5993

被折叠的 条评论
为什么被折叠?



