FP32¶
说明¶
该数据格式为 32位单精度浮点数表示格式,遵循IEEE 754-2008标准规范。
二进制结构¶
FP32的二进制结构包含1bit符号位、8bit指数和23bit尾数,简写为E8M23。示意图如下:

数值范围¶
FP32的指数偏移为127,可以表达的数值通过公式定义如下
1.对于规格化浮点数: $$ Value = (−1)^S x 2^{E−127} x (1 + \Sigma_{i=0}^22 m_i x 2^{-23+i}) $$
2.对于非规格化浮点数: $$ Value = (−1)^S x 2^{E−127+1} x \Sigma_{i=0}^22 m_i x 2^{-23+i} $$
其中:
- S ∈ {0,1}。
- E ∈ [0, 255],但全0 和全1 用于特殊值。
- $m_i$ 是尾数的第ibit,i ∈ [0, 22]。
FP32的取值范围为:
| 数值 | S | Exponent | Mantissa | 表达范围 |
|---|---|---|---|---|
| 零值(Zeros) | 0/1 | 8'h00 | 23'h000000 | $\pm$0 |
| 最小非规格数(Min Subnormal) | 0/1 | 8'h00 | 23'h000001 | $\pm$2^{-23} x 2^{-126} |
| 最大非规格数(Max Subnormal) | 0/1 | 8'h00 | 23'h7FFFFF | $\pm$(2^{-1} + 2^{-2} + ... + 2^{-23}) x 2^{-126} |
| 最小规格数(Min Normal) | 0/1 | 8'h01 | 23'h000000 | $\pm$2^{-126} |
| 最大规格数(Max Normal) | 0/1 | 8'hFE | 23'h7FFFFF | $\pm$(1 + 2^{-1} + 2^{-2} + ... + 2^{-23}) x 2^127 |
| 无穷值(Infinities) | 0/1 | 8'hFF | 23'h000000 | $\pm$ $\infty$ |
| 非数(NaN) | 0/1 | 8'hFF | !=0 | Not a Number |
注意¶
当数值超出范围时会发生溢出(Overflow)或下溢(Underflow)