小端模式:数据的高字节保存在内存的高地址,在网络编程中也称主机字节序
大端模式:数据的高字节保存在内存的低地址,在网络编程中也称网络字节序
记住:大相反,小相同
我们使用联合体特性就可以判断设备的字节顺序
总所周知:'a'的ASCII码为97;对应的十六进制为0x61,'b'就是0x62
union {
short value; // short为两个字节
char union_bytes[sizeof(short)];
}u;
int main() {
u.value = 0x6261;
// 'b''a'
if(u.union_bytes[0] == 'a' && u.union_bytes[1] == 'b') {
cout << "小端模式" << endl;
} else if(u.union_bytes[0] == 'b' && u.union_bytes[1] == 'a') {
cout << "大端模式" << endl;
}
}
如果内存低地址(u.union_bytes[0])对应的是数据的低字节(0x61),说明是小端模式
如果内存低地址(u.union_bytes[0])对应的是数据的高字节(0x62),说明是大端模式