黑马程序员技术交流社区
标题:
java类型转换问题,为何结果是负数,求分析??
[打印本页]
作者:
謓心い謓意
时间:
2014-6-26 19:47
标题:
java类型转换问题,为何结果是负数,求分析??
public static void main(String[] args)
{
int x;
int x1=Integer.MAX_VALUE;
int x2=2;
x=x1+x2;
System.out.println(x);
结果:-2147183647
作者:
xp8812
时间:
2014-6-26 20:37
Integer.max_value = 01111111 111111111111111111111111 +1 = 10000000 00000000 00000000 00000000
最高位是符号位为1,这个数是负数,负数的源码是补码取反+1,刚好等于Integer.min_value 搜索 结果当然是负数了,Integer的最小值
作者:
从未有过的晴天
时间:
2014-6-26 20:42
这么高深的题都能答出来!~~
作者:
謓心い謓意
时间:
2014-6-26 20:46
我打印了x1和x2,值分别是2147183647和-2147183647,MAZ_VALUE是正数啊,还是没明白
int x1=Integer.MAX_VALUE;
int x2=Integer.MIN_VALUE;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2