2.4.2 IEEE浮点表示
目录
P79
- 规格化
既然\(E\)有正有负,为什么不用补码表示而是要采用偏置(\(E=e-bias\))的形式表示呢?因为这个样子我们可以直接将\(exp\)看做无符号整数,比较的时候直接按照无符号整数比较就很简单了
规格化的含义就是大家都约定\(M=1+f\)
来看一个例子:\(15213\)
首先将其规格化
![image]()
然后按步骤计算即可
![image]()
- 非规格化
规格化中尾数永远大于\(1\),所以无法表示接近\(0\)的值,于是我们有了非规格化
从这里也可以更加深刻地理解什么叫做“轻松获得一个额外精度位”:如果区分是否规格化,那么对于最高位是\(1\)的小数,精度为\(1+k\)位,对于最高位是\(0\)的小数,精度为\(1+k\)位;而如果我们不区分是否规格化,也就是直接把\(exp\)当做二进制数值,那么任何小数的精度都是\(k\)位,就少了一位
也就是说为什么在非规格化中\(E=1-bias\):因为当尾数全为\(0\)的时候,是非规格化的情况,那么表示\(1.0000...\)的方法就是令\(E=1-bias\)(也就是教材上说的“平滑转换”,可以看图2-35中从\(\frac{7}{512}\)到\(\frac{8}{512}\)的那一段) - 特殊值
与整数不同,对无穷/NaN做任何操作得到的仍然是无穷/NaN



浙公网安备 33010602011771号