字节序(Byte Order)
字节序(Byte Order)是指在多字节数据存储时,高位字节和低位字节的存储顺序。主要分为大端字节序(Big Endian)和小端字节序(Little Endian)两种。
大端(Big Endian)
在大端存储方式中,最高有效字节(MSB)存储在最低的地址处,而最低有效字节(LSB)存储在最高的地址处。换句话说,数据的高位字节先存储在内存的低地址处,而数据的低位字节则后存储在内存的高地址处。大端存储方式通常被称为网络字节序。
小端(Little Endian)
在小端存储方式中,最低有效字节(LSB)存储在最低的地址处,而最高有效字节(MSB)存储在最高的地址处。换句话说,数据的低位字节先存储在内存的低地址处,而数据的高位字节则后存储在内存的高地址处。小端存储方式通常被称为主机字节序。
例如
以一个 32 位整数 0x12345678 为例,如果使用大端存储方式,那么它在内存中的存储方式如下:
大端
低地址 -----------------> 高地址
+------+------+------+------+
| 12 | 34 | 56 | 78 |
+------+------+------+------+
大端
低地址 -----------------> 高地址
+------+------+------+------+
| 12 | 34 | 56 | 78 |
+------+------+------+------+
而如果使用小端存储方式,那么它在内存中的存储方式如下:
低地址 -----------------> 高地址
+------+------+------+------+
| 78 | 56 | 34 | 12 |
+------+------+------+------+
低地址 -----------------> 高地址
+------+------+------+------+
| 78 | 56 | 34 | 12 |
+------+------+------+------+