浮点数在内存中的存储方式为:符号位+指数+尾数
符号位:表示浮点数是正数还是负数。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
如果想考验自己是否充分理解这节内容的话,可以随便写一个浮点数尝试转换。通过 浮点二进制转换工具可以验证答案。