0

我试图理解浮点表示。我不明白浮点中的“无穷大”“NaN”表示。我正在查看TopCoder 提供的表格。

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

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

4

1 回答 1

2

您应该简单地忽略使用的位模式并将无穷大和 NaN 视为特殊值。除非你对你的浮点数做一些摆弄(我认为很少有理由这样做),否则你只会在 IEEE 规则说应该创建它们的地方遇到这些值,忽略以下问题是安全的计算机如何代表它们。即使你做的不仅仅是标准计算,我的猜测是 99% 的时间,位模式并不重要。

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

于 2012-05-10T07:38:37.723 回答