C浮点数的标准要求

时间:2013-02-11 18:46:22

标签: c floating-point

在“C Primer Plus 5 / e”一书中,我看到作者写道:

  

C标准规定浮动必须至少能够代表   6个重要数字,允许至少10^(-37)到的范围   10^(+37)

但是为了这样做并同时使用自然大小,它需要4个字节。 所以事实上,人们的范围可以从10 ^( - 63)到10 ^(+ 63),参见

http://en.wikipedia.org/wiki/Floating_point#Internal_representation

所以我在脑海中提出了一个问题:为什么C标准选择范围at least 10^(-37) to 10^(+37)的要求。当然,可能需要考虑计算速度。但除此之外,有没有理由不使用完整的32位空间?

1 个答案:

答案 0 :(得分:5)

C标准以它的方式编写,允许C语言在各种机器上实现,具有多种硬件。通过限制实际表示REQUIRED,有更多可能的机器可以使用C“而不违反规则”。

浮点处理器(特别是WERE)不一定使用IEEE-754。

此外,我认为你的10 ^( - 63).. 10 ^(+ 63)是一个误解。 32位浮点数的范围为2 ^(+/- 127),这意味着大约10 ^(+/- 37)(2 ^ 127~ = 10 ^ 37)。