了解十进制 0.2 的 32 位浮点数的尾数部分

Understanding the mantissa part of a 32 bit float for the decimal 0.2

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

所以0.2d可以转化为0.0011b重复。你把基数移过去得到 1.1 x 2^-3

符号位 = 0

指数 = 0111 1100

尾数 = 10011001100110011001101 为什么?

尾数不就是10000000000000000000000吗?

0.2 十进制是 0.001100110011... 二进制。当您移动小数点前有一个 1 时(必需,因为 1 实际上并未存储在 fp 值中——它是 "hidden" 一个),您有 2-3 · 1.1001100110011... 现在如果你真的想存储恰好 23 位的尾数(与 fp32 一样),中断:

10011001100110011001100_110011001..

出现在 1 位之前的一点,所以你将其四舍五入,得到

10011001100110011001101

作为存储的尾数