什么是Little endian 和 Big endian?
Little endian 和 Big endian 是两种不同的字节序(Byte Order),用于表示多字节数据在内存中的存储顺序。
1. Little Endian
- 概念:在Little Endian中,数据的最低有效字节(Least Significant Byte, LSB)存储在最低的内存地址处,而最高有效字节(Most Significant Byte, MSB)存储在最高的内存地址处。
举例:假设一个32位的十六进制数
0x12345678
,在Little Endian的系统中,它的存储顺序是:- 地址
0x00
:0x78
- 地址
0x01
:0x56
- 地址
0x02
:0x34
- 地址
0x03
:0x12
- 地址
这样,最低有效字节 0x78
存储在内存中的最低地址 0x00
处。
2. Big Endian
- 概念:在Big Endian中,数据的最高有效字节(MSB)存储在最低的内存地址处,而最低有效字节(LSB)存储在最高的内存地址处。
举例:同样是
0x12345678
,在Big Endian的系统中,它的存储顺序是:- 地址
0x00
:0x12
- 地址
0x01
:0x34
- 地址
0x02
:0x56
- 地址
0x03
:0x78
- 地址
这样,最高有效字节 0x12
存储在内存中的最低地址 0x00
处。
应用
- Little Endian 通常用于x86架构的计算机。
- Big Endian 通常用于网络协议(如TCP/IP)。
总结
- Little Endian 是从低地址存储低位,适合逐位读取,处理速度更快。
- Big Endian 是从低地址存储高位,适合与人类直观的阅读顺序一致,便于调试和查看。
两者在计算机系统中都有各自的应用场景,选择哪种字节序取决于具体的硬件架构和应用需求。