Big Endian(大端)vs Little Endian(小端)

Big Endian(大端)指最高有效字节在内存的低地址位;Little Endian(小端)指最低有效字节在内存的低地址位。
具体来说,对于单个字节的数据,不存在大小端的问题。对于多字节的数据类型,其字节是如何在内存中分布的呢? 比如一个int,在32位的机器上占用4个字节,假定其值为0x12345678,内存地址为0x1000 - 0x1003,那么这个值在0x1000、0x1001、0x1002、0x1003上的分布见下表:

0x1000 0x1001 0x1002 0x1003
Big Endian 12 34 56 78
Little Endian 78 56 34 12

大小端只是存储的一个原理,取决于主机和操作系统,而且不光出现在内存中,因此实际编程中对于有些I/O操作可能需要对字节序有一个更灵活的考虑。大端更符合人的阅读习惯,不过对于机器来说就不存在这个问题了。

你可能感兴趣的:(Big Endian(大端)vs Little Endian(小端))