日期:2014-05-20  浏览次数:20763 次

为什么加到最后会出现负值?
Java code

public class No2 {
    public static void main(String[] args){
        for(int i=1;true;){
            i=i+123456789;
            System.out.println(i);
        }
    }
}


为什么加到最后会出现负值?

------解决方案--------------------
楼上各位都不厚道,对小学妹要好点.我来说说吧.

假设变量的数据类型占用n个字节,数值超过其表示范围,直接就截取数值的最后n个字节赋值给变量.
(其实是前n个字节,如果不知道我说什么,就姑且认为是最后的n个字节)

对于int类型 int a = b; 相当于 int a = b & 0xFFFFFFFF;
对应的,要是 byte a = b就相当于 bye a = b & 0xff;