数据从类型范围小的自动向数据范围大的转换3d
整数向浮点数转换(包括long类型向float转换)code
char类型的范围内与整数之间转换依据ASCII表blog
强制转换会丢失精度,尤为是超过数据范围和整数与浮点数的转换编译
这里的m+2L就是上面的自动类型转换,在执行加法时就成了long类型,因此是long类型的2147483649(已经超出了int的范围)float
再来看++的状况
im
num = num + 1
是会产生编译错误的,因此这里还有默认的强制类型转换num = (byte) (num+1)
,因此结果被截取为byte类型,变成了-128。+=状况相似
d3
m+=2L
能够看作m=(int)(m+2L)
,强制类型转换为int,变成-2147483647至此,如有纰漏,望各位不吝赐教数据