5

Wikipedia 中的 Significand 条目

当以二进制工作时,有效数字的特征在于其二进制数字(位)的宽度。因为对于标准化数字,最高有效位始终为 1,所以该位通常不存储,称为“隐藏位”。根据上下文,隐藏位可能会或可能不会计入有效数字的宽度。例如,相同的 IEEE 754 双精度格式通常被描述为具有 53 位有效位(包括隐藏位)或 52 位有效位(不包括隐藏位)。隐藏位的概念仅适用于二进制表示。IEEE 754 将精度 p 定义为有效数字中的位数,包括任何隐含的前导位(例如,双精度格式的精度 p 为 53)。

为什么归一化数字的最高有效位始终为 1?有人可以用一个例子来解释吗?

4

3 回答 3

7

二进制中唯一的数字是 0 和 1,前导零不重要(例如 1101 与 00001101 相同,额外的零不添加任何内容)。因此,最高有效数字必须是 1,因为这是唯一的其他可能性。

由于您知道最高有效位必须为 1,因此您可以省略它而不会丢失任何信息。这很有用,因为它可以让您获得额外的精度。

例外是数字 0,但这是通过将偏置指数设置为 0 以浮点数处理的(以及其他特殊情况,如 NaN 和 +/- 无穷大)。

于 2012-08-20T13:49:29.877 回答
5

这并不完全正确,对于 0、NaN、Infinity 和非正规值等特殊值没有前导 1。

但是,是的,当它是一个“正常”的数字时,你总是可以重写它,使尾数从 1 开始。只需增加指数。等价物也存在于十进制中,如果值不为零,您始终可以编写一个数字,以便它以单个非零数字开头:

  0.5 = 5.0 E-01
  0.05 = 5.0 E-02
  50 = 5.0 E+01
  500 = 5.0 E+02
  etcetera.

区别在于这个单个数字在二进制中将是 1。所以它不必存储,可以推断。这会增加一点精度。足以使浮点处理器逻辑复杂化以在计算中恢复该 1 的吸引力。

于 2012-08-20T13:51:05.373 回答
3

前导零在数字的任何表示中都不携带有用信息,因此不需要存储它们。因此,在二进制表示中,最左边的有效数字将始终是 a1并且也不需要存储,可以假定它存在。

于 2012-08-20T13:43:00.513 回答