什么是 Little Endian?
Little Endian(小端字节序)是一种数据在内存中存储的方式。 在这种模式下,最低有效字节(Least Significant Byte, LSB) 存储在内存的最低地址处,而最高有效字节(MSB)则存储在高地址处。
例如,一个 32 位整数 0x12345678 在 Little Endian 系统中的内存布局如下:
地址: 0x1000 0x1001 0x1002 0x1003 值: 0x78 0x56 0x34 0x12
与 Big Endian 的对比
相对地,Big Endian(大端字节序)将最高有效字节存放在最低地址。
同样的数值 0x12345678 在 Big Endian 中的布局为:
地址: 0x1000 0x1001 0x1002 0x1003 值: 0x12 0x34 0x56 0x78
常见应用场景
- Intel x86 和 x86-64 架构 CPU 默认使用 Little Endian。
- ARM 架构处理器通常可配置为 Little 或 Big Endian,但默认多为 Little Endian。
- 网络协议(如 TCP/IP)通常采用 Big Endian(也称“网络字节序”),因此在通信时需进行字节序转换。
检测当前系统字节序(JavaScript 示例)
你可以使用以下 JavaScript 代码检测浏览器所在系统的字节序:
function isLittleEndian() {
const buffer = new ArrayBuffer(2);
const view = new DataView(buffer);
view.setInt16(0, 0x1234, true); // 强制小端写入
return new Uint8Array(buffer)[0] === 0x34;
}
console.log('当前系统是 Little Endian:', isLittleEndian());