跳转至

HiF8

该数据格式为 8位低精度浮点数表示格式

二进制结构

HiF8在IEEE 754的基础上,定义了一个额外的点域(D),占2~4bits。D值显式指示指数域所占的位数,并暗示尾数宽度。不同的点域,HiF8格式有不同的编码,如下图所示。

hif8

符号、指数和尾数分别缩写为“S”、“E”和“M”。

数值范围

HiF8可以表达规格化浮点数(normal)和非规格化浮点数(subnormal)两种数据。

1.对于规格化浮点数: $$ Value = Sv x 2^(Ev) x (1 + Mv) $$

其中:

  • Sv是编码在S的符号位,编码为0时表示正数,编码为1时表示负数。
  • Ev是编码在E字段的实际指数值。E字段的最高有效位是符号位,并且{1b1:E[MSB-1, LSB]}是Ev的绝对值。
  • Mv是编码在M字段的实际尾数值,它被计算为$Mv = \frac{M}{M^w}$。(w是M字段的位宽)

2.对于非规格化浮点数: $$ Value = Sv x 2^(Mv-23) $$

  • Sv是编码在S的符号位。
  • Ev未定义。
  • Mv是指数位,范围从0至7。(为0时表示Zero或者NaN)。

HiF8编码细节如下:

S D E M Sv Ev Mv
0~1 0000 - 000~111 $\pm$1 - [0, 7]
0~1 0001 - 000~111 $\pm$1 0 [$\frac{0}{8}$, $\frac{7}{8}$]
0~1 001 0~1 000~111 $\pm$1 $\pm$1 [$\frac{0}{8}$, $\frac{7}{8}$]
0~1 01 00~11 000~111 $\pm$1 $\pm$[2, 3] [$\frac{0}{8}$, $\frac{7}{8}$]
0~1 10 000~111 00~11 $\pm$1 $\pm$[4, 7] [$\frac{0}{4}$, $\frac{3}{4}$]
0~1 11 0000~1111 0~1 $\pm$1 $\pm$[8, 15] [$\frac{0}{2}$, $\frac{1}{2}$]

一些特殊值列举如下:

S D E M Value
0 0000 - 000 Zero
1 0000 - 000 NaN
0 11 0111 1 +INF(正无穷)
1 11 0111 1 -INF(负无穷)