您的位置:首页 > 产品设计 > UI/UE

Integer.MAX_VALUE和Integer.MIN_VALUE的运算及原理

2016-08-27 00:00 483 查看
先上代码:

int a = Integer.MAX_VALUE;
int b = Integer.MIN_VALUE;
System.out.println(a + a);  // -2
System.out.println(b + b);  // 0
System.out.println(a - b);  // -1

为什么是这样的结果?参考这篇博客《原码, 反码, 补码 详解》(http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html)

这样就好理解了,假设Max值为:01111111 假设Min值为:11111111,有以下结论:

max:		min:
0 1111111	1 1111111	| 原码
0 1111111	1 0000000	| 补码

min + min:
0 0000000	| 补码
0 0000000	| 原码 = 0

max + max:
1 1111110	| 补码
1 0000010	| 原码 = -2

max + min:
1 1111111	| 补码
1 0000001	| 原码 = -1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: