浮点字节序?

新手上路,请多包涵

我正在为实时海上模拟器编写客户端和服务器,并且由于我必须通过套接字发送大量数据,因此我正在使用二进制数据来最大化我可以发送的数据量。我已经知道整数字节序,以及如何使用 htonlntohl 来规避字节序问题,但是我的应用程序,就像几乎所有的模拟软件一样,会处理很多浮点数。

我的问题是:在处理浮点数的二进制格式时是否存在字节序问题?我知道我的代码将运行的所有机器都使用浮点的 IEEE 实现,但是在处理浮点数时是否存在一些字节顺序问题?

由于我只能访问具有相同字节序的机器,因此我无法自行测试。所以,如果有人可以帮助我,我会很高兴。

原文由 cake 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 643
2 个回答

根据 维基百科

浮点数和字节序

在某些机器上,整数以小端形式表示,而浮点数以大端形式表示。因为有许多浮点格式,并且缺乏标准的“网络”表示,所以没有制定传输浮点值的标准。这意味着写入在一台机器上的浮点数据可能无法在另一台机器上读取,即使两者都使用 IEEE 754 浮点算法也是如此,因为内存表示的字节顺序不是 IEEE 规范的一部分。

原文由 Daniel Pryden 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题