对于 IEEE 754 标准,0.1 并不是真正的“0.1”。
0.1 被编码:(0 01111011 10011001100110011001101
带有浮点数)
- 0 是符号(= 正)
- 01111011 指数 (= 123 -> 123 - 127 = -4 (127 是 IEEE 754 中的偏差))
- 10011001100110011001101尾数
要将尾数转换为十进制数,我们有 1.10011001100110011001101*2^ -4 (base2) [1.xxx 在 IEEE 754 中是隐含的]
= 0.000110011001100110011001101(base2)
= 1/2^4 + 1/2^5 + 1/2^8 + 1/2^9 + 1/2^12 + 1/2^13 + 1/2^16 + 1/2^17 + 1 /2^20 + 1/2^21 + 1/2^24 + 1/2^25 + 1/2^27 (base10)
= 1/16 + 1/32 + 1/256 + 1/512 + 1/4096 + 1/8192 + 1/65536 + 1/131072 ...(base10)
= 0.10000000149011612 (base10)