大端字节序(MSB)和 小端字节序(LSB)
1、存储
小端字节序的存储规则:数据的低位存储在地址低位,数据的高位存储在地址高位
大端字节序的存储规则:数据的高位存储在地址低位,数据的低位存储在地址高位
例如 0x12345678,小端字节序存储如下
地址 | 0x0001 | 0x0002 | 0x0003 | 0x0004 |
数据 | 0x78 | 0x56 | 0x34 | 0x12 |
大端字节序存储如下
地址 | 0x0001 | 0x0002 | 0x0003 | 0x0004 |
数据 | 0x12 | 0x34 | 0x56 | 0x78 |
2、程序中判断字节序是大端或小端
根据上面的数据存储规则,可以用如下逻辑判断
int tmp = 0x01;
char* pTmp = nullptr;
pTmp = (char*)&tmp;
if(*pTmp) //大端
else //小端