我知道一种格式是“IEEE 754浮点标准”
检查C ++编译器是否使用IEEE 754浮点标准
std::numeric_limits<float>::is_iec559;
还有哪些其他标准格式?
如何检查C ++编译器是否遵循该格式?
编辑:有多少种格式?这些是什么 ?就c ++语言而言
答案 0 :(得分:4)
你没有,numeric_limits
在设计时考虑到了IEEE 754。您只需了解实现是否符合IEEE 754标准。
但请记住,您应该使用has_infinity
,has_quiet_NaN
等来检查各个功能 - 基本上,您需要检查某些功能,而不是特定的浮点格式。
答案 1 :(得分:2)
在std::numeric_limits<double>::is_iec559
上通常不是一个好主意,因为使用g ++,即使你的代码是用fastmath选项编译的,也是如此,例如不支持IEEE 754 NaN行为(它主要只是二进制级兼容表示)。
即,实际上is_iec559
并未告诉您实现是否符合IEEE 754标准。
所以,你需要特定于编译器的方法。
干杯&amp;第h。,