其他分享
首页 > 其他分享> > 浮点数的存储方式

浮点数的存储方式

作者:互联网

格式为:

SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM

举例:
17.625在内存中的存储

首先要把17.625换算成二进制:10001.101。

整数部分,除以2,直到商为0,余数反转。
小数部分,乘以2,直到乘位0,进位顺序取。

将10001.101右移,直到小数点前只剩1位:1.0001101 * 2^4 因为右移动了四位。

底数:因为小数点前必为1,所以IEEE规定只记录小数点后的就好。所以,此处的底数为:0001101。
指数:实际为4,必须加上127(转出的时候,减去127),所以为131。也就是10000011。
符号部分是正数,所以是0。

综上所述,17.625在内存中的存储格式是:01000001 10001101 00000000 00000000   

常见问题(数据类型硬转换导致的失真):

如果不将一个浮点数做(int)转换(软转换)就直接将其以%d格式printf的话,会导致输出结果恒为0(截断效应)

 

标签:存储,方式,浮点数,底数,小数点,MMMM,17.625,127
来源: https://www.cnblogs.com/Eusionblogs/p/14727582.html