对于表达式 5x2^100,我们希望给出5和100,而不是利用100多个二进制位。
IEEE浮点标准用 V = (-1)s x M x 2E 的形式来表示一个数。
显然,s代表正负,M就是上式的5,E就是上式中的100,这样便可以只要三个数就表示出来。
将这三个字段装进字中的方式有两种:
根据exp的值,被编码的值可以分成三种情况,如下,第三种有两个变种。
1.规格化的值:当exp的位不全是0且不全是1时,都为规格化的值。这种情况下,E=e-Bias。Bias=2k-1-1,单精度为127,双精度为1023。此时小数字段frac被解释为描述小数值f,0<=f<1,默认尾数为M=1+f。
2.非规格化的值:当阶码域为全0时,所表示的数是非规格化形式。这种情况下,阶码值E=1-Bias,尾数的值为M=f,不包含隐含的1 。
3.特殊值:当阶码全为1时。若frac全为0,则表示无穷大或无穷小。若frac不全为0,则为NaN(not a num) 。
例子:当阶码位为4位,小数位为3位时:Bias = 24-1-1=7 。