定点数与浮点数表示
定点数与浮点数据表示
<1> 定点数据表示
- 可表示定点小数和整数
- 表现形式:X0.X1X2X3 … Xn(定点小数)
- 定点小数的表示数的范围(补码为例):-1 x 1-2n
- 定点整数表示数的范围(补码为例): -2n x 2n - 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)s × 2E-127 × 1.M
随E和M的取值不同,IEEE754浮点数据表示具有不同的意义- E = 0,M = 0 : 表示机器零
- E = 0,M 0 : 则N = (-1)s × 2-126 × 0.M, 非规格化的浮点数
- 1 E 254: N = (-1)s × 2E-127 × 1.M, 规格化的浮点数
- E = 255, M = 0 : 无穷大的数,对应于 x/0 (其中x 0)
- E = 255, M 0 : N = NaN, 表示一个非数值,对应于 0/0
-
IEEE754 32位浮点数与对应真值之间的交换流程
-
案例