什么是 Endian?
Endian(中文常译为“字节序”)是指在计算机系统中,多字节数据(如整数、浮点数)在内存中的存储顺序。
主要有两种字节序:
- 大端序(Big-Endian):高位字节存储在低地址,低位字节存储在高地址。
- 小端序(Little-Endian):低位字节存储在低地址,高位字节存储在高地址。
示例说明
以十六进制数 0x12345678 为例:
- 大端序内存布局(从低地址到高地址):
12 34 56 78 - 小端序内存布局(从低地址到高地址):
78 56 34 12
常见应用场景
- 网络传输:TCP/IP 协议规定使用大端序(也称“网络字节序”)。
- Intel x86 架构:采用小端序。
- ARM 架构:可配置为大端或小端,但通常默认为小端。
如何判断系统字节序?
以下是一个简单的 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(isLittleEndian() ? '小端序' : '大端序');