浮点数IEEE标准
IEEE 754 是计算机浮点数表示的通用标准,几乎所有现代CPU都遵循这一标准。
基本格式
IEEE 754 浮点数由三部分组成:
s (1位) | exp (k位) | frac (n位)
- s(符号位):0表示正数,1表示负数
- exp(指数位):k位编码指数
- frac(小数位):n位编码尾数部分
常见格式
| 格式 | 总位数 | s | exp | frac | Bias |
|---|---|---|---|---|---|
| half (fp16) | 16 | 1 | 5 | 10 | 15 |
| single (fp32) | 32 | 1 | 8 | 23 | 127 |
| double (fp64) | 64 | 1 | 11 | 52 | 1023 |
数值公式
IEEE 754 浮点数的通用数值公式为:
其中:
- M(尾数/有效数):由 frac 位决定,但依赖于具体的编码类别
- E(实际指数):
- 是 exp 位对应的无符号整数
- (k为指数位位数)
Bias的作用
使用偏向指数的目的是让指数可以表示负数而不需要使用补码。Bias使得指数范围大致对称地分布在0两侧。
例如fp32中 Bias=127:
- exp=1 → E = 1-127 = -126
- exp=127 → E = 127-127 = 0
- exp=254 → E = 254-127 = 127
分类
IEEE 754 将浮点数分为三类,由 exp 位的值决定(参见 ):
- 规格化数(exp 不全0且不全1)
- 非规格化数(exp 全0)
- 特殊值(exp 全1)
相关笔记
链接到
- 上一个知识点:2.9 十进制与二进制小数转换
- 下一个知识点:2.11 浮点数的分类与舍入