在我的计算机体系结构课程中,我们使用14位二进制模型;(1位用于符号,5位用于指数,8位用于尾数)。当输入Exponent时,我的教练让我们添加16来抵消它。(偏差16)为什么我们使用16偏?是因为5位只能代表31个数字吗?如果是这样,请详细说明并与使用指数时使用127偏差的IEEE单精度进行比较。最后,如果有人能给我一个明确的偏见定义,在这个上下文和二进制中使用我会非常感激。如果我说的话不清楚,请评论。
答案 0 :(得分:3)
IEEE 754二进制浮点格式遵循指数偏差的简单模式。当指数具有p
位时,偏差为。有了这个,指数具有相同数量的正指数和负指数。
对于单精度浮点数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有几个可能的原因: