我正在为实时海上模拟器编写客户端和服务器,并且由于我必须通过套接字发送大量数据,因此我使用二进制数据来最大化可以发送的数据量。我已经了解整数字节顺序以及如何使用htonl
and ntohl
为了规避字节顺序问题,但我的应用程序与几乎所有模拟软件一样,处理大量浮点数。
我的问题是:处理浮点数的二进制格式时是否存在字节序问题?我知道运行我的代码的所有机器都使用浮点的 IEEE 实现,但是在处理浮点数时是否存在一些字节序问题?
由于我只能访问具有相同字节序的机器,因此我无法自己测试这一点。所以,如果有人能帮助我解决这个问题,我会很高兴。
根据维基百科 http://en.wikipedia.org/wiki/Endianness#Floating_point,
浮点和字节顺序
在某些机器上,虽然整数是
以小端形式表示,
浮点数是
以大端形式表示。
因为浮点数有很多
格式和缺乏标准
“网络”表示,无标准
用于传输浮点值
已经做了。这意味着
写在一个浮点数据上
机器可能无法读取
另一个,情况也是如此,即使
两者都使用 IEEE 754 浮点
算术,因为字节序
内存表示不属于
IEEE 规范。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)