【发布时间】:2014-02-07 13:17:23
【问题描述】:
我有一个文件规范(此处为:http://www.septentrio.com/secure/asterx1v_2_1/SBF%20Reference%20Guide.pdf),其中包含标记为 32 位和 64 位浮点数的字段(参见第 8 页)。如何在我的程序中同时使用这两种宽度?我现在正在 Mac OSX 上开发,但我也将部署在 Linux 机器上。
更多细节:
我知道我可以告诉编译器宽度,但我如何区分两个不同的浮点宽度?也许有人也有改变我解析方式的建议,即reinterpret_cast(buffer+offset),然后使用这些值。这些文件很大(4GB),所以我需要性能。
【问题讨论】:
-
我们在谈论哪个操作系统?
-
在您的平台上可能 float 是 32 位,double 是 64 位 - 这很常见。
-
是的,但是浮点数和双精度数有不同的内部结构对吗?
-
也许这会有所帮助:stackoverflow.com/a/19466500/2293156
-
文档说 4 和 8 字节浮点数使用 IEEE 格式。许多(但不是全部)机器对 float 和 double 类型使用相同的格式。
标签: c++ floating-point 64-bit 32-bit