1. 把十进制 0.1 用 IEEE 754 双精度表示,写出近似值的十六进制位模式?
请把十进制 0.1 用 IEEE 754 双精度表示,并写出其近似值的十六进制位模式?
- 双精度格式
- 0.1 的舍入位模式
- 双精度指数偏置 1023 与存储指数
0.1 在二进制中约等于 0.0001100110011001100110011001100110011001100110011001101…(无限循环)。双精度为 1 位符号 + 11 位指数 + 52 位尾数。0.1 的符号为 0,指数为 -4(规格化后 1.1001100…×2^-4),存储指数 = -4 + 1023 = 1019 = 0x3FB。尾数取 52 位并舍入后,0.1 的双精度位模式为 0x3FB999999999999A(十六进制 8 字节)。该值略大于真实 0.1。
0.1 无法精确表示,双精度舍入到最近的 52 位尾数,得到 0x3FB999999999999A。索引字节 0x3F 给出符号与指数,B9 开始是尾数。这是面试中 0.1 精度问题的根源。