JAVA数据类型溢出分析
2014-02-07 14:53
197 查看
package p20140207; public class T20140207 { public static void main(String[] args) { int test =Integer.MAX_VALUE; System.out.println("No.1= "+test); System.out.println("No.2= "+(test+1)); System.out.println("No.3= "+(test+1l)); } }
大家猜猜结果会是什么样?
结果如下:No.1= 2147483647
No.2= -2147483648
No.3= 2147483648
package p20140207; public class T20140207 { public static void main(String[] args) { int test =java.lang.Integer.MAX_VALUE; System.out.println("No.1= "+test); System.out.println("No.2= "+(test+1)); System.out.println("No.3= "+(test+1l)); System.out.println("No.4= "+(Math.pow(2, 32)));//int 一共可以表示2的32次方=4294967296个数字 System.out.println("No.5= "+(Math.pow(2, 32)/2-1));//最大表示的数量 } //0~2147483647分别表示0~2147483647 //2147483648~4294967295分别表示-2147483648~-1 //所以当2147483647+1变成了第2147483648个数时就对应变成了-2147483648 }
PS:运算的时候都是用2进制的补码进行计算的,细节就不具体列出了。
相关文章推荐
- Java数据类型分析
- Java基础之数据类型(一)与传值传引用分析
- java学习总结(16.05.17)对数据类型取值范围和数据溢出的理解(以byte类型为例)
- JAVA IO分析二:字节数组流、基本数据&对象类型的数据流、打印流
- java中的基本数据类型和引用数据类型的分析
- java语言基础(10)——类型强制转换时的数据溢出计算
- java基础数据类型分析
- Java中复杂数据类型分析
- Java中的类型转换对数据的影响分析
- JAVA中整数类型数据溢出问题研究
- Java基本数据类型转换分析
- 结合Java数据类型分析JVM运行时数据结构
- Java基本数据类型自动转型溢出问题
- Java中基本数据类型与引用数据类型分析
- Java左右移位操作和数据类型转换时的溢出问题
- java核心基础--jdk源码分析学习--基本数据类型
- 分析Java的复杂数据类型
- Java数据类型分析
- Java与C连动时的数据类型分析
- 对java基础数据类型在运算过程中的自动转换的一些分析