为什么无穷大的浮点表示明显为0 ^ n?

时间:2012-05-10 06:43:22

标签: floating-point nan infinity

我试图理解浮点表示。我不理解浮点数中的'无穷''NaN'表示。  我正在查看表provided by TopCoder

无穷大由所有1的指数和全0的尾数表示。

我只能将其读作0 ^ n,而我不确定它是如何趋于无穷大。

1 个答案:

答案 0 :(得分:2)

您应该忽略使用的位模式,并将无穷大和NaN视为特殊值。除非你对你的花车进行小工具(我认为没有什么理由可做),你只会在IEEE规则说它们应该被创建的地方遇到这些值,并且忽略这个问题是安全的。计算机如何代表他们。即使你做的不仅仅是标准计算,我的猜测是99%的时间,位模式无所谓。

当然,上述都没有说你应该忽略标准的,有限的,非零浮点数的实现。虽然从尾数/指数到内存中的位的步骤仍然几乎不相关。在您链接到的页面中,作者声称“C ++中的全局变量被初始化为零位模式” - 这是错误的。 C ++中POD类型的全局变量初始化为语义零所需的任何位模式(§3.6.2.2,§8.5.5)。我相信C ++标准对任何浮点值都不需要任何特定的位模式。