Gee*_*eek 4 algorithm floating-point mantissa exponent
当使用二进制时,有效位的特征在于其宽度以二进制数字(位)表示。因为对于一个归一化的数字,最高有效位始终为1,所以通常不存储该位,因此将其称为“隐藏位”。根据上下文,隐藏位可能会或可能不会计入有效数字的宽度。例如,通常将相同的IEEE 754双精度格式描述为具有53位有效数字(包括隐藏位)或52位有效数字(不包括隐藏位)。隐藏位的概念仅适用于二进制表示形式。IEEE 754将精度p定义为有效位数,包括任何隐含的前导位(例如,双精度格式的精度p为53)。
为什么对于归一化数,最高有效位始终为1?可以请一个例子解释一下吗?
二进制中的唯一数字是0和1,并且前导零不重要(例如1101与00001101相同,多余的零不加任何内容)。因此,最高有效位必须为1,因为这是唯一的其他可能性。
由于您知道最高有效位必须为1,因此可以忽略它而不会丢失任何信息。这很有用,因为它可以使您获得更高的精度。
例外是数字0,但可以通过将有偏指数设置为0在浮点(以及其他特殊情况,如NaN和+/-无穷大)中进行处理。
这并不完全正确,对于 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.
Run Code Online (Sandbox Code Playgroud)
区别在于该单个数字在二进制中为 1。所以它不必存储,可以推断。这会增加一点精度。有吸引力的足以使浮点处理器逻辑复杂化以在计算中恢复 1。
归档时间: |
|
查看次数: |
1292 次 |
最近记录: |