大端模式(Big-endian):
高位字节排放在内存的低地址端,低位字节排放在内存的高地址端,即正序排列,高尾端;
小端模式(Little-endian):
低位字节排放在内存的低地址端,高位字节排放在内存的高地址端,即逆序排列,低尾端;
- 常见的字节序
一般操作系统都是小端,而通讯协议是大端的。
1)常见CPU的字节序
Big Endian : PowerPC、IBM、Sun Little Endian : x86、DEC ARM既可以工作在大端模式,也可以工作在小端模式。
2)常见文件的字节序Adobe PS – Big Endian BMP – Little Endian DXF(AutoCAD) – VariableGIF – Little Endian JPEG – Big Endian MacPaint – Big Endian RTF – Little Endian另外,Java和所有的网络通讯协议都是使用Big-Endian的编码。
- 如何判断机器的字节序 (重点)
一般都是通过 union 来测试的
union{
short i;
char a[2];
}u;//联合体u u.a[0] = 0x11;
u.a[1] = 0x22; printf ("0x%x\n", u.i); //0x2211 为小端
//0x1122为大端