定点数与浮点数表示

定点数与浮点数据表示

<1> 定点数据表示

  • 可表示定点小数和整数
  • 表现形式:X<sub>0</sub>.X<sub>1</sub>X<sub>2</sub>X<sub>3</sub> … X<sub>n</sub>(定点小数)
  • 定点小数的表示数的范围(补码为例):-1 $\leq$ x $\leq$ 1-2<sup>n</sup>
  • 定点整数表示数的范围(补码为例): -2<sup>n</sup> $\leq$ x $\leq$ 2<sup>n</sup> – 1
  • 顶点数据表示数的不足:数据表示范围受限

<2> 浮点数据表示

  • 把数的范围和精度分别表示的一种数据表示方法浮点数的使用场合
    当数的表示范围超出了定点数能表示的范围时

1. 格式(一般格式)

  • E: 阶码位数,决定数据的范文
  • M: 尾数位数,决定数的精度
  • 一般表示格式的不足
    – 数据移植性太差
    – 不同系统可能根据自己的浮点数格式从中提取出不同位数的阶码

2. IEEE 754格式

S | 8位偏指数E | 23位有效尾数M | 单精度

  • | – | – | –
    S | 11位偏指数E | 52位有效尾数M | 双精度
  • 指数采用偏移值,其中单精度偏移值为127,双精度为1023,将浮点数的阶码值变成非负整数,便于浮点数的比较和排序
  • IEEE754 尾数形式为 1.XXXXXX, 其中M 部分保存的是XXXXXX(1被隐藏),从而可保留更多的有效位,提高数据表示的精确度
  • 与上述IEEE754格式相对应的32位浮点数的真值可表示为:
    N = (-1)<sup>s</sup> × 2<sup>E-127</sup> × 1.M
    随E和M的取值不同,IEEE754浮点数据表示具有不同的意义
    – E = 0,M = 0 : 表示机器零
    – E = 0,M $\not=$ 0 : 则N = (-1)<sup>s</sup> × 2<sup>-126</sup> × 0.M, 非规格化的浮点数
    – 1 $\leq$ E $\leq$ 254: N = (-1)<sup>s</sup> × 2<sup>E-127</sup> × 1.M, 规格化的浮点数
    – E = 255, M = 0 : 无穷大的数,对应于 x/0 (其中x $\not=$ 0)
    – E = 255, M $\not=$ 0 : N = NaN, 表示一个非数值,对应于 0/0
  • 《Lecture Notes on IEEE 754》
  • IEEE754 32位浮点数与对应真值之间的交换流程
  • 案例
正文完