PS: 该部分内容从理论上分析浮点数的算术标准应该如何制定,不要与IEEE754标准混淆
为什么要讨论浮点数在计算机中如何表示?
定点数表示会导致许多前导0,浪费空间。
定点数表示范围小,运算困难。
浮点数的表示
浮点数 = 尾数*阶码的基阶码的值
200.1 = 2.001*102
100.1111B = 1.001111B*22
相关参数
m:尾数的值
e:阶码的值
rm:尾数的基
re:阶码的基
p:尾数的长度(不包括符号位)
q:阶码的长度(不包括符号位)
浮点数的表数范围
浮点数在数轴上对应的范围,因为浮点数是不连续的,所以我们只关注最大正数,最小正数,最大负数,最小负数
最大正数:0.11...11*2127
最小正数:0.00...01*2-128
浮点数的表数精度
一般认为,规格化浮点数的尾数的最后一位的精确度为一半,因为这一位大多是舍入而来的
浮点数的表数效率
可表示的规格化浮点数/全部浮点数的个数
设计
好的设计应该在表数范围,表数精度和表数效率三者中都有较好的表现
假设其中两种参数相等,通过列等式求解,可以得出
rm, re取2是最好选择
并且,对于规约浮点数,使用隐藏1可以得到100%的表数效率