Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Binary 为什么教科书中使用的二进制14位浮点模型使用偏置16,而IEEE单精度使用偏置127?_Binary_Floating Point_Computer Architecture_Ieee 754 - Fatal编程技术网

Binary 为什么教科书中使用的二进制14位浮点模型使用偏置16,而IEEE单精度使用偏置127?

Binary 为什么教科书中使用的二进制14位浮点模型使用偏置16,而IEEE单精度使用偏置127?,binary,floating-point,computer-architecture,ieee-754,Binary,Floating Point,Computer Architecture,Ieee 754,在我的计算机架构课程中,我们使用14位二进制模型;(1位表示符号,5位表示指数,8位表示尾数)。当输入指数时,我的导师让我们加16来抵消它。(偏差16)为什么我们使用16偏差?是不是因为5位最多只能代表31个数字?如果是这样,请详细说明,并与使用指数时使用127偏差的IEEE单精度进行比较。最后,如果有人能给我一个明确的定义,在这种情况下使用的偏见和二进制我会非常感激。如果我说的不清楚,请发表评论。IEEE 754二进制浮点格式遵循指数偏差的简单模式。当指数具有p位时,偏差为。这样,指数具有相等

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

IEEE 754二进制浮点格式遵循指数偏差的简单模式。当指数具有
p
位时,偏差为。这样,指数具有相等数量的正指数和负指数


对于单精度浮点
p
为8,因此偏差为127。对于您的格式
p
为5,偏差为15。也许您的讲师将偏差改为16,因为格式不支持denorm、infinity和NaN

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

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

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

如中所述,IEEE 754标准将对5位指数使用15的偏差

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

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

指数偏差使IEEE浮点数可以与符号/大小整数进行比较。这对于CPU内部可能很有用,因此它们可以将比较硬件用于浮点数的大小。它也适用于浮点数bithack函数,如。