【发布时间】:2016-12-19 10:36:38
【问题描述】:
我有一个工作软件,目前在little-endian 架构上运行。我也想让它在big-endian 模式下运行。我想将little-endian 数据写入文件,无论底层系统的字节序如何。
为了实现这一点,我决定使用 boost endian 库。它可以有效地转换整数。但它不能处理浮点数(和双精度数)。
它在documentation 中声明,“Boost 1.59.0 将支持浮点类型”。但是1.62 仍然不支持它们。
我可以假设,浮点数是有效的 IEEE 754 浮点数(或双精度数)。但是它们的字节顺序可能会根据底层系统而有所不同。据我所知,不建议在浮点数上使用 htonl 和 ntohl 函数。那怎么可能呢?是否有任何仅包含标头的库,它也可以处理浮点数?我找不到任何东西。
我可以将浮点数转换为字符串,然后将其写入文件,我想避免这种方法,原因有很多(性能、磁盘空间、...)
【问题讨论】:
-
不需要任何库,它非常直接。看看那里:stackoverflow.com/questions/2782725/…
标签: c++ boost endianness