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

入门新手求教int和long的取值范围
书上说int的存储了空间是4字节取值范围是 -2 147 483 648 到 +2 147 483 648 
long的存储空间位8字节取值范围是 -9 223 372 036 854 775 808 到 +9 223 372 036 854 775 807
但是我用 long l = 1234567890123;编译的时候就报错:过大的整数
也就是我用long定义的整数也不能超过int的取值范围这是真么回事了? 

------解决方案--------------------

long l = 1234567890123L

long型的字面值要在最后加个L

类似的还有

float f = 0.1f;

因为浮点型的字面值默认是double型的,也就是0.1默认是0.1d


        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
        System.out.println(Long.MAX_VALUE);
        System.out.println(Long.MIN_VALUE);

包装类里有其最大最小值

------解决方案--------------------
一楼正解
1234567890123如果不加L,则编译器默认其为int型,1234567890123作为int型,显然超出范围了,故编译时报错
------解决方案--------------------
引用:
一楼正解
1234567890123如果不加L,则编译器默认其为int型,1234567890123作为int型,显然超出范围了,故编译时报错

另外,如果没超出int范围的值,传给long类型的,当然也可以不加L