混合运算的时候,byte , short , char 不会相互转换,都会自动提升为 int 类型,
其他类型数据在运算时,内存小的类型数据提升为内存大的类型数据。
long 占8字节
float 占4字节
理论上来说, long 类型的比 float 类型的要大,测试:
测试后发现,把 float 类型的值赋值给 long 类型的变量会报错,说明 long 类型的比 float 类型的要小
通过强制转换
输出 1
一波解释:
float 占4个字节,也就是 32 个二进制位
IEEE754 规定
在 32 个进制位中
1 位是符号位,
8 位是是指数位,这八位的范围是 00000000 到 11111111
也就是 0 - 255 之间,0 代表 0 , 255 代表无限大
范围也就是 1-254 ,再减去127
所以 float 的取值范围是 2^-126 到 2^127