1:概述
不同类型的数据经常出现相互转换的现象
例如:
byte b1 = 5;
// 这行代码会报错,原因是10默认是int类型,byte和int相加的结果为int,这里就会出现类型转换的现象
// Java默认整数类型计算结果为int
byte b2 = b1 + 10;
2:小类型向大类型转换
- 小类型向大类型的转换会自动完成,即不需要程序员编写额外的代码,由JVM负责。
- 自动类型转换也叫“隐式类型转换”。
- 自动转换的规则:符号位自动扩展,负数补1,整数补0。
- 自动类型转换包含以下情况:
- byte->short->int->long->float->double
- int和char类型的数据在某些情况下可以自动相互转换
- 整数到浮点数转换会损失精度。
示例代码如下:
public static void main(String[] args) {
int a = -2;
long b = a;
System.out.println(a + ":" + Integer.toBinaryString(a));
System.out.println(b + ":" + Long.toBinaryString(b));
int i = 0x1000001;
float f = i;
System.out.println(Integer.toBinaryString(i) + ":" + i);
System.out.println(Integer.toBinaryString((int) f) + ":" + f);
// long类型转double类型,精度丢失示例
long l = 0x20000000000001L;
double d = l;
System.out.println(Long.toBinaryString(l) + ":" + l);
System.out.println(Long.toBinaryString((long) d) + ":" + d);
}
注意:要想知道上述代码执行结果你不需要自己在开发工具里面运行一把吗?
网友评论