为什么教科书中使用的二进制十四位浮点模型使用偏差16,因为IEEE单精度使用偏差127?

时间:2016-02-28 20:32:46

标签: binary floating-point computer-architecture ieee-754

在我的计算机体系结构课程中,我们使用14位二进制模型;(1位用于符号,5位用于指数,8位用于尾数)。当输入Exponent时,我的教练让我们添加16来抵消它。(偏差16)为什么我们使用16偏?是因为5位只能代表31个数字吗?如果是这样,请详细说明并与使用指数时使用127偏差的IEEE单精度进行比较。最后,如果有人能给我一个明确的偏见定义,在这个上下文和二进制中使用我会非常感激。如果我说的话不清楚,请评论。

2 个答案:

答案 0 :(得分:3)

IEEE 754二进制浮点格式遵循指数偏差的简单模式。当指数具有p位时,偏差为2^{p-1}-1。有了这个,指数具有相同数量的正指数和负指数。

对于单精度浮点数p为8,因此偏差为127.对于您的格式p为5且偏差为15.也许您的教师将偏差更改为16,因为格式为'支持denorm,infinity和NaN。

答案 1 :(得分:3)

有几种方法可以表示一系列数字,包括正数和负数。增加偏见特别灵活。范围[-n, m)可以通过向每个数字添加n来表示,并将其映射到范围[0, m+n)

该系统用于我使用过的所有浮点系统中的指数。它简化了一些比较,因为非符号位的较大无符号二进制值表示较大的浮点绝对值,除了特殊值(如NaN)。

对于浮点指数,偏差约为指数范围的一半,因此大约一半的值位于零的每一边。精确平衡是不可能的,因为存在偶数个位模式,而一个用于零。

another answer中所述,IEEE 754标准对5位指数使用15的偏差。

选择16有几个可能的原因:

  • 有一些实际的技术原因,例如建议不将31视为特殊。
  • 偏置16使1.0的表示特别简单,只有一个非零位。
  • 与IEEE 754略有不同,有助于说服学生浮点并不意味着IEEE 754.还有其他浮点格式。
  • 与IEEE 754略有不同可能会阻止使用现有工具来获取练习的结果而不了解表示的工作原理。
  • 它是指数偏差的合理值之一的任意选择,不参考IEEE 754。