Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.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
Floating point 解释为什么不需要表示浮点格式的隐藏位_Floating Point - Fatal编程技术网

Floating point 解释为什么不需要表示浮点格式的隐藏位

Floating point 解释为什么不需要表示浮点格式的隐藏位,floating-point,Floating Point,解释为什么不需要表示浮点格式的隐藏位 帮忙?我知道隐藏位的存在是为了更高的精度,但为什么不需要表示它呢?如果你指的是尾数H.xxxxxxx之前的隐藏位,H=隐藏,那么答案是当指数>0时,它隐式为1,当指数=0时,它为零 如果可以从指数中计算出位,则省略该位可使尾数再增加一位精度。@Aki的答案是正确的。隐含位并不总是1 对于0.0、-0.0和非规范数字(逐渐下溢),隐含位(如果有)将为0。 这些数字的指数都是零偏的 非有限浮点(+inf-inf NaN)根本不需要任何隐含位的概念。 不过,添加这

解释为什么不需要表示浮点格式的隐藏位


帮忙?我知道隐藏位的存在是为了更高的精度,但为什么不需要表示它呢?

如果你指的是尾数H.xxxxxxx之前的隐藏位,H=隐藏,那么答案是当指数>0时,它隐式为1,当指数=0时,它为零


如果可以从指数中计算出位,则省略该位可使尾数再增加一位精度。

@Aki的答案是正确的。隐含位并不总是1

对于0.0、-0.0和非规范数字(逐渐下溢),隐含位(如果有)将为0。
这些数字的指数都是零偏的

非有限浮点(+inf-inf NaN)根本不需要任何隐含位的概念。
不过,添加这样一点不会有什么坏处
这些数字都是有偏指数设置为1的数字

对于每一个其他浮点,隐含位将是1

从技术上讲,答案是我们不需要存储隐含位,因为我们在FPU电路中添加了额外的逻辑,以根据上述规则重构它;)


例如,隐含位可以通过对有偏指数的所有位进行ORing来获得,因此它毕竟没有那么昂贵。

它将始终是一个,因此我们不表示它 当你规范化一个二进制数时,你只会得到一个隐藏的位,而规范化的意义是以

1.xxxxx2^x(例如:110.11变为1.1011x2^2)

所以第一位总是变成1,所以我们不需要表示它,因为它(几乎)总是在那里。那为什么要浪费一点时间来储存呢?