32位单精度浮点数的存储格式:
其中s为符号位,占据1bit, f是由低23个bit组成的分数,最高位为0.5,然后是0.25,以此类推。e为2的指数幂,b为偏置(在32位单精度里b=127).
所以一个32位单精度的存储排列是这样的:
由此,我们可以看1.5在32位单精度浮点数中的存储表示:
s = 0 (a positive number)
f = 100 0000 0000 0000 0000 0000 (23 fraction bits representing 0.5)
e = 0 + 127 (8 bits of true exponent plus the bias)
F = 0 0111111 100 0000 0000 0000 0000 0000
即0x3FC00000:
通过Visual Studio查看,存储的值确实为0x3FC00000: