浮点数小数表示形式

.0111 = \(0x2^{-1}+2^{-2}+2^{-3}+2^{-4}\)

IEEE 浮点数表示形式

\[ V=(-1)^s X M X 2^E \]

  • s = 0 表示负数, s = 1 表示正数
  • M 是二进制表示的小数
  • E 是阶码

浮点数二进制组成

  • 一个单独符号位 s 表吗符合
  • k 位阶码字段 exp 编码阶码 E
  • n 位小数字段 frac 编码尾数 M

两种常见的格式

  1. float
    • s = 1
    • k = 8
    • n = 23
  2. double
    • s = 1
    • k = 11
    • n = 52

三种计算方式

前置的一些值

  • e 是 exp 位表示的无符号数
  • f 是 frac 位表示的小数
  • \(Bias = 2^{k-1} -1\)

规格化的值

  • 规则:阶码字段 exp 的位模式即不全为 0,也不全为 1(单精度 255,双精度 2047)
  • 计算方式
    • \(E = e - Bias\)
    • $M = 1 + f $

非规格化的值

  • 规则:阶码字段 exp 全是 0(用于表示 0)
  • 计算方式
    • \(E = 1 - Bias\)
    • \(M = f\)

可以表示 +0 和 -0。

特殊值

  • 阶码字段 exp 全是 1
    • 小数字段全 0 表示:无穷(s = 0 负无穷,s = 1 正无穷)
    • 小数字段非全 0 表示:NaN(Not a Number)