所谓大头就是高位在低字节,低位在高字节;小头则与此相反,以0x12345678为例,大头内存从低到高的存放次序为12,34,56,78,小头内存从低到高的存放次序为78,56,34,12;(上面的数值统一为16进制表示形式)
5 个解决方案
#1
如果跨字节序的机器通信,且没有上层协议处理字节序问题,则需要处理字节序相关问题。
如果跨机器,建议增加UINT8的类型,(unsigned char),这个值大小端都一样,再根据这个类型来处理收到的信息。
如果是通样的机器,对于字节序,代码部分不可见。不需要特意处理
如果跨机器,建议增加UINT8的类型,(unsigned char),这个值大小端都一样,再根据这个类型来处理收到的信息。
如果是通样的机器,对于字节序,代码部分不可见。不需要特意处理
#2
大小端的时候对于字节类型的操作没什么影响,但是在short,long或者struct等类型向char类型转换的时候应该注意一点,好比一个short a = 0x0001,你想取数就得注意了char *m = (char *)&a;这就得看大小端了,具体内容你懂得
#3
大多用于通信
#4
哦。大多在数据通信方面应用到了。
#5
注意不要写依赖这些细节的代码。
在写网络应用时注意字节序的转换。
在写网络应用时注意字节序的转换。
#1
如果跨字节序的机器通信,且没有上层协议处理字节序问题,则需要处理字节序相关问题。
如果跨机器,建议增加UINT8的类型,(unsigned char),这个值大小端都一样,再根据这个类型来处理收到的信息。
如果是通样的机器,对于字节序,代码部分不可见。不需要特意处理
如果跨机器,建议增加UINT8的类型,(unsigned char),这个值大小端都一样,再根据这个类型来处理收到的信息。
如果是通样的机器,对于字节序,代码部分不可见。不需要特意处理
#2
大小端的时候对于字节类型的操作没什么影响,但是在short,long或者struct等类型向char类型转换的时候应该注意一点,好比一个short a = 0x0001,你想取数就得注意了char *m = (char *)&a;这就得看大小端了,具体内容你懂得
#3
大多用于通信
#4
哦。大多在数据通信方面应用到了。
#5
注意不要写依赖这些细节的代码。
在写网络应用时注意字节序的转换。
在写网络应用时注意字节序的转换。