浮点数IEEE标准

IEEE 754 是计算机浮点数表示的通用标准,几乎所有现代CPU都遵循这一标准。

基本格式

IEEE 754 浮点数由三部分组成:

s (1位) | exp (k位) | frac (n位)
  • s(符号位):0表示正数,1表示负数
  • exp(指数位):k位编码指数
  • frac(小数位):n位编码尾数部分

常见格式

格式总位数sexpfracBias
half (fp16)16151015
single (fp32)321823127
double (fp64)64111521023

数值公式

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 位的值决定(参见 ):

  1. 规格化数(exp 不全0且不全1)
  2. 非规格化数(exp 全0)
  3. 特殊值(exp 全1)

相关笔记

链接到