这就是我在标题中的问题。其他任何东西都被使用似乎完全不自然。
在对此进行研究时,我发现有一些历史上支持基本10的硬件示例,以及更现代的IBM POWER6和z9系统示例。即使在这种情况下,我也不知道主流C编译器上的FLT_RADIX是否是10。
我特别关心的是,我正在为一个只在通用计算机上运行的应用程序编写代码,我想知道我是否可以静态地断言FLT_RADIX==2而不需要严重关注,比如我目前如何静态地断言!(unsigned char)256。
发布于 2015-03-20 19:42:06
附件F是C标准中的一个“可选”部分,对于将使用浮点数的任何严肃实现来说都是非可选的,它要求float和double分别使用IEEE单精度和双精度(binary32和binary64),因此FLT_RADIX应该始终为2。在支持新的十进制浮点数的系统中,它是一个单独的扩展类型;FLT_RADIX==10不用于它。
https://stackoverflow.com/questions/29174165
复制相似问题