浮点数在内存中存储方式

浮点数在内存中的存储方式为:符号位+指数+尾数

符号位:表示浮点数是正数还是负数。0表示正数,1表示负数

指数:指数部分。类似于科学技术法中的M*10^N中的N,只不过这里是以2为底数而不是10。需要注意的是,这部分中是以2^7-1即127,也即01111111代表2^0,转换时需要根据127作偏移调整

尾数:基数部分。浮点数具体数值的实际表示。

float型变量占用32bit,即4个byte的内存空间,float和double类型的数据在计算机内部表示法相同,但由于所占空间大小不同,其分别能表示的数值范围和精度不同

例如8.25在内存中的表示:

1、整数部分:1000

     小数部分

0.25*2=0.5     ---  0

0.5*2  =1        ---  1

所以小数部分为.01

8.25的二进制表示为1000.01  -----> 1.00001*(2^3)

符号位:0

指数:127(固定偏移)+3 = 130  ----> 10000010

小数:00001

所以合起来在内存中表示为:

0 10000010 00001000000000000000000

即:0x41040000

如果想考验自己是否充分理解这节内容的话,可以随便写一个浮点数尝试转换。通过 浮点二进制转换工具可以验证答案。

猜你喜欢

转载自blog.csdn.net/q2519008/article/details/83066060
今日推荐