理解32位浮点数的尾数部分为小数点0.2

时间:2015-04-15 22:50:52

标签: binary floating-point

为什么0.2d等于二进制表示:0 0111110010011001100110011001101

因此0.2d可以转化为0.0011b重复。你移动基数并获得1.1 x 2 ^ -3

符号位= 0

指数= 0111 1100

尾数= 10011001100110011001101为什么?

尾数不是10000000000000000000000?

1 个答案:

答案 0 :(得分:1)

0.2十进制是0.001100110011 ...二进制。当您在小数点之前移位1时(需要,因为1实际上并未存储在fp值中 - 它是“隐藏的”),您有2 - 3 ·1.1001100110011 ...现在如果你真的想存储23位尾数(与fp32一样),那么中断:

10011001100110011001100_110011001..

出现在1位之前的一点,所以你把它围绕起来,给出

10011001100110011001101

作为存储的尾数