首页 > 编程知识 正文

浮点数的阶码是补码吗,浮点数的阶码选用移码表示有何优点

时间:2023-05-04 06:57:10 阅读:264765 作者:1099

日常生活中我们对小数进行加减法时,为了方便,通常先把它们的指数化成一致,再比较前面的数值部分;

比如1e-3与1e-1,我们化为1e-3和100e-3,这样就能很明显的得到结果 99e-3了,同样,在计算机中亦是如此;

设想以单精度的浮点数为例,阶码有8位,能表示-128~127之间的数字;而我们在对其阶码进行比较时,如果不偏置,那么0010xx和1000xx在计算机眼中就会认为后者较大,而其实后者是负数;所以这样的话,计算机得先把它们化成原码,再对其进行比较,比较繁琐;

而当浮点数的阶码采用移码的形式时(偏置127),即E=e-Bias (e∈[1,254],0和255是特殊的值,不呢能取),那么E∈[-126,127],所以浮点数阶码中储存的e全为正数,可直接比较,不用转换成原码再进行;而实际表示的浮点数的指数部分取值范围就是E的取值范围,所以浮点数的精度为-126~12;

补充一个问题:在观看CSAPP的视频时,里面有个学生提出:为什么这个偏置值要取2k-1-1呢?
教授的回答是:exp的取值范围为[1,254],而E作为最后小数的指数,它所表示的精度要对半分,非负数要占一般,正数要占一半,而exp只能取254个值,自然最后E的范围只能为[-126,127],只有这样才能刚好对半分,根据Bias=exp-E,从而得到Bias的值为127;

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。