大端序(Big Endian)和小端序(Little Endian)是两种不同的存储字节顺序的方式。它们影响数据在内存中的存储方式,特别在多字节数据类型如浮点数的表示上有所体现。
区别
- 大端序(Big Endian):
- 在大端序系统中,数据的最高有效字节存储在最低地址处,而最低有效字节存储在最高地址处。
- 数据的字节顺序是从高位到低位,即高位在前,低位在后。
- 大端序类似于将数据按照人类的阅读习惯从左到右进行存储。
- 小端序(Little Endian):
- 在小端序系统中,数据的最低有效字节存储在最低地址处,而最高有效字节存储在最高地址处。
- 数据的字节顺序是从低位到高位,即低位在前,高位在后。
- 小端序系统更符合硬件设计的需求,因为可以更容易地访问数据的低位和高位部分。
举例
假设有一个 4 字节的整数 0x12345678
,在大端序和小端序系统中的存储方式如下。
- 大端序系统:
- 地址 0: 0x12 (最高有效字节)
- 地址 1: 0x34
- 地址 2: 0x56
- 地址 3: 0x78 (最低有效字节)
- 小端序系统:
- 地址 0: 0x78 (最低有效字节)
- 地址 1: 0x56
- 地址 2: 0x34
- 地址 3: 0x12 (最高有效字节)