类型转换

自动类型转换

低 ---------------------------------------------> 高
byte,short,char-> int -> long -> float -> double

强制类型转换

高----------------------------------------------> 低

double->float->long->int->byte,short,int

需要特别注意的是虽然long占8字节,float占4字节,但是long到float无需强制转换。

这是因为float类型是按照IEEE浮点标准进行存储的:

第1位,符号位,即S

接下来8位,指数域,即E。

剩下23位,小数域,即M,取值范围为[1 ,2 ) 或[0 , 1)

然后按照公式计算: V=(-1)^s * M * 2^E

也就是说浮点数在内存中的32位不是简单地转换为十进制,而是通过公式计算得来,虽然float型数据只有4个字节,但浮点数表示范围要比长整型的范围要大。

posted @ 2019-03-29 17:09  小六boss  阅读(85)  评论(0编辑  收藏  举报