【发布时间】:2010-11-17 17:56:56
【问题描述】:
是否可以通过网络发送双浮点值(当然要针对正确的字节顺序进行调整)并在不同的 cpu 架构上互换使用它们,特别是 i386、mips(几个不同的内核)、powerpc(e300、e500)。没有非常旧的硬件。
使用 gcc 4.2.1 作为带有 -Os 的编译器,适用于所有架构。
据说它到处都是 IEEE-754 标准(是吗?),但正如维基百科所说:
IEEE 754-1985 允许在实现中进行许多变化(例如某些值的编码和某些异常的检测)。 IEEE 754-2008 已经收紧了其中的许多内容,但仍然存在一些变化(尤其是二进制格式)。
我不打算传递 NaN 或其他特殊的东西,只是传递有效的十进制数字。
【问题讨论】:
-
如果您出于性能原因避免使用文本,您可能需要查看协议缓冲区:code.google.com/p/protobuf 他们处理字节序问题、对齐(与发送 C 数据结构相比)等。他们做假设发送方和接收方符合 IEEE-754 标准,请使用浮点数。
标签: serialization floating-point portability cpu-architecture