谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用Big_Endian方式存储数据,而x86系列则采用Little_Endian方式存储数据。那么究竟什么是Big_Endian,什么又是Little_Endian呢?
其实Big_Endian是指低地址存放最高有效字节(MSB),而Little_Endian则是低地址存放最低有效字节(LSB)。
用文字说明可能比较抽象,下面用图像加以说明。比如数字0x12345678在两种不同字节序CPU中的存储顺序如下所示:
Big_Endian
低地址 高地址
-----------------------------------------
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 12 | 34 | 56 | 78 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Little_Endian
低地址 高地址
-----------------------------------------
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 78 | 56 | 34 | 12 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
从上面两图可以看出,采用Big_Endian方式存储数据是符合我们人类的思维习惯的。