大端小端模式
大端是高位字节先存储
小端是低位字节先存储
网络字节序是大端的,也就是高位字节先传输。
如何判断大小端?
使用int-char的强制类型转换,将低地址的数值截断1个字节。判断该字节的内容。
#include <iostream>
using namespace std;
int main()
{
int a = 0x1234;
char c = static_cast<char>(a);
if (c == 0x12) {
cout << "big endian" << endl;
} else if(c == 0x34) {
cout << "little endian" << endl;
}
return 0;
}
解决大小端问题,在通信前加个0xDEADBEEF