操作数1的数据类型 | 操作数2的数据类型 | 转换后的数据类型 |
---|---|---|
byte、short、char | int | int |
byte、short、char、int | long | long |
byte、short、char、int、long | float | float |
byte、short、char、int、long、float | double | double |
byte b = 127; int i = 150; float f = 452.12f; float result1 = b + f; //float 的级别比 byte 的高,因此 b+f 运算结果的数据类型为级别更高的 float int result2 = b * i; //int 的级别比 byte 的高,因此 b*i 运算结果的数据类型为级别更高的 int
int i = 258; byte b = (byte) i; System.out.println("b的值:" + b);定义一个值为 258 的 int 型变量 i,把 int 型变量 i 强制转换为 byte 型,并在控制台中输出强制转换后的结果,输出结果为:
b的值:2
由于 byte 型变量的取值范围是 -128~127,而 258 超过了这个范围,因此数据溢出。本文链接:http://task.lmcjl.com/news/17999.html