如何测试文件存储的浮点表示?

Cra*_*mer 6 c++ floating-point c++11

我将科学数据转储到文件中.目前我只是将它们与它们在内存中的相同表示倾倒.我已经记录了它们是IEEE754,但是我希望在代码中声明这一点,这样如果它被移植到一个奇怪的架构并与我的文档分开(研究代码被传递),它就会在编译时出错.目前我有

static_assert(sizeof(double)==8), "message");
Run Code Online (Sandbox Code Playgroud)

有没有办法测试IEEE754?这可以是静态断言吗?

Yu *_*Hao 4

在 C 中,检查是否已定义:

__STDC_IEC_559__
Run Code Online (Sandbox Code Playgroud)

在 C++ 中,检查这是否是true

std::numeric_limits<double>::is_iec559()
Run Code Online (Sandbox Code Playgroud)

IEC559是国际电工委员会标准559的缩写,与IEEE 754相同。