双精度浮点数

2. 双精度浮点数(double)

结构示意图
| 符号位 (1位) | 指数 (11位) | 尾数 (52位) |
编码步骤
  1. 确定符号位

    • 正数:0
    • 负数:1
  2. 计算指数

    • 指数偏移量(Bias)为1023。
    • 真实指数 = 指数部分 - 1023。
    • 存储的指数值 = 真实指数 + 1023。
  3. 计算尾数

    • 将数值归一化为1.xxxxx的形式,省略隐含的1,只存储后面的部分。
    • 如果尾数不足52位,用0填充;如果超过52位,进行舍入。
示例

将十进制数 -12.75 转换为double:

  1. 符号位:负数,符号位为1。

  2. 转换为二进制

    • 12.75 → 1100.11₂
    • 归一化:1.10011 × 2³
  3. 指数

    • 真实指数 = 3
    • 存储的指数 = 3 + 1023 = 1026 → 10000000010₂
  4. 尾数

    • 10011 后补0至52位:1001100000000000000000000000000000000000000000000000
  5. 最终编码

    符号位 | 指数        | 尾数
    1      | 10000000010 | 1001100000000000000000000000000000000000000000000000