浮点数小数表示形式
.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
两种常见的格式
float
- s = 1
- k = 8
- n = 23
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)