我确信这个问题以前被问过很多次,所以我做了一个快速搜索,找到了this Wikipedia page来解释浮点值的结构。
我通过一个网络发送和接收数据,这个网络由一些浮点值组成(对于一个游戏),这就引出了以下问题:
我是不是要担心永世?
如果endianness很重要,那么如何在不进行*(float*)
转换或并集的情况下提取这些值?(例如整数移位的技巧)
提前谢谢。
最佳答案
如果你直接从内存中写出一个浮点值,那么,是的,你必须处理endianness。
你有上千种方法可以解决这个问题。网络协议经常使用的一种方法是将结构读入字节缓冲区,交换所有元素(如果主机的端号与协议的端号不匹配),然后将其视为正常的主机结构。