可以通过网络双浮点值发送(当然是根据正确的字节顺序调整)并在不同的cpu架构上交替使用它们,特别是i386,mips(几个不同的内核),powerpc(e300,e500)。没有极其旧的硬件。
将gcc 4.2.1用作所有体系结构的-Os编译器。
据说它到处都是IEEE-754标准(是吗?),但正如维基百科所说:
IEEE 754-1985允许实现中的许多变化(例如某些值的编码和某些异常的检测)。 IEEE 754-2008已经收紧了许多这些,但仍然存在一些变化(特别是对于二进制格式)。
我无意传递NaN或其他特殊内容,只是有效的十进制数字。
答案 0 :(得分:2)
如果您想发送标准化数字的表示,那么您在任何现代建筑上都是完全安全的。如有任何疑问,请查看架构手册。对于非规范化数字,您必须检查。
当然,您必须能够使用正确的字节顺序将消息转换为字节并在另一端重新组合,但听起来您知道如何做到这一点。
如上所述,您不能期望不同的CPU以相同的方式实现标准的每个部分,但这不是必需的。
从IEEE浮点到ASCII的转换充满了错误; 20世纪90年代Guy Steele和Will Clinger发表了很好的论文。汉堡和Dybvig有一个later followup on doing it faster。
答案 1 :(得分:1)
您实质上是在问“我可以无缝地在系统之间传输二进制数据”。答案是肯定的,只要两个系统同意相同的格式。如果你知道你期望的CPU,那么检查他们的IEEE标准complience,你应该开展业务。