浮点数的表示

:符号 :尾数 :基数,一般是隐含的 2 :指数

Tip

相同位数的定点数和浮点数,可表示的数据的数量一样多,因为可表示数据的数量由位数决定。

float 和 double 的格式

类型符号阶码尾数偏置值
float1 位8 位23 位127
double1 位11 位52 位1023

Tip

float 和 double 尾数最高位隐藏一个 1,因而使浮点数的精度更高。

极端情况

阶码尾数含义
全 0全 0正 0 / 负 0
全 0非全 0非规格化数,阶数为-126 阶,隐含的第一位变成 0
全 1全 0正无穷/负无穷
全 1非全 0NaN,用于表示非法操作的结果(如 0 除以 0)

舍入

  1. 向偶数舍入
  2. 向零舍入
  3. 向上舍入
  4. 向下舍入

浮点数的加减运算

  1. 对阶:低阶向高阶的阶码对齐
  2. 尾数加减
  3. 尾数规格化
  4. 舍入
  5. 溢出判断

Tip

IEEE 754 浮点数尾数都是大于 1,于是乘法运算的结果也大于 1,所以不需要左规。