双精度浮点数
2. 双精度浮点数(double)
- 总位数:64位
- 组成:
- 符号位:1位
- 指数:11位
- 尾数:52位
结构示意图
| 符号位 (1位) | 指数 (11位) | 尾数 (52位) |
编码步骤
-
确定符号位:
- 正数:0
- 负数:1
-
计算指数:
- 指数偏移量(Bias)为1023。
- 真实指数 = 指数部分 - 1023。
- 存储的指数值 = 真实指数 + 1023。
-
计算尾数:
- 将数值归一化为1.xxxxx的形式,省略隐含的1,只存储后面的部分。
- 如果尾数不足52位,用0填充;如果超过52位,进行舍入。
示例
将十进制数 -12.75 转换为double:
-
符号位:负数,符号位为1。
-
转换为二进制:
- 12.75 → 1100.11₂
- 归一化:1.10011 × 2³
-
指数:
- 真实指数 = 3
- 存储的指数 = 3 + 1023 = 1026 → 10000000010₂
-
尾数:
- 10011 后补0至52位:1001100000000000000000000000000000000000000000000000
-
最终编码:
符号位 | 指数 | 尾数 1 | 10000000010 | 1001100000000000000000000000000000000000000000000000