在 IEEE 754 和 JavaScript 中,0 和 -0 的表示方式不同



我很好奇,即使是0 === -0,但1/01/-0给出不同的结果。 因此,我们可以假设 IEEE 754 中0-0的表示方式不同。 他们是如何表现的?

更新:到目前为止,我可以找到一些关于 https://en.wikipedia.org/wiki/Signed_zero 的信息

似乎有IEEE 754-1985和IEEE 754-2008,一种形式可能是二进制的:

0 00000000 00000000000000000000000  as positive 0
1 00000000 00000000000000000000000  as negative 0
(以上是 32 位,最左边的位是符号位,然后是右边

的 8 位作为指数,然后是 23 位作为有效数)。 但我找不到 1985 年和 2008 年版本之间的区别。

请参阅:

维基百科上的IEEE 754-1985

维基百科上的IEEE 754-2008

有关更改,请参阅维基百科上的"IEEE 754修订版"页面。

1985 和 2008 版本都使用有符号零。它们表示为:

符号 = 0 表示正零,1 表示负零。

偏差指数 = 0。

分数 = 0。

(正如您在问题中写的那样)

编辑:在1985年和2008年的版本中,1/0 =无穷大,而1/-0 =负无穷大

最新更新