入门新手求教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型,显然超出范围了,故编译时报错
------解决方案--------------------
另外,如果没超出int范围的值,传给long类型的,当然也可以不加L