Big-Endian即为大端模式,高位字节存放在内存的低地址端,低位字节存放在内存的高地址端;
Little-Endian即为小段模式,高位字节存放在内存的高地址端,低位字节存放在内存的低地址端。
例如:要在内存中存放0x12 34 56 78,
对于Big-Endian,低地址-------------------->高地址
0x12 | 0x34 | 0x56 | 0x78
对于Little-Endian, 低地址---------------------->高地址
0x78 | 0x56 | 0x34 |0x12
判断机器的字节序:
方法一、 方法二、
bool IsBigEndian() bool IsBigEndian()
{ {
int a = 0x1234; union
char b = *(char *)&a; {
if(b = 0x12) int a;
return true; char b;
else }num;
return false; num.a = 0x1234;
} if(num.b = 0x12)
return true;
else
return false;
}