黑马程序员技术交流社区

标题: 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