字节序
**Endian** 和 **endianness**(或“字节序”)描述了计算机如何组织构成数字的字节。
每个内存存储位置都有一个索引或地址。每个字节可以存储一个8位数字(即介于0x00
和0xff
之间),因此您必须保留多个字节来存储更大的数字。到目前为止,在一个数字中多个字节最常见的**排序**方式是**小端序**,它用于所有英特尔处理器。小端序意味着按从最低有效字节到最高有效字节的顺序存储字节(其中最低有效字节占用第一个或最低地址),类似于欧洲常用的日期书写方式(例如,2050年12月31日)。
自然地,**大端序**是相反的顺序,类似于ISO日期(2050-12-31)。大端序也常被称为“网络字节序”,因为互联网标准通常要求数据以大端序存储,从标准的UNIX套接字级别一直到标准化的Web二进制数据结构。此外,以前使用68000系列和PowerPC微处理器的旧款Mac电脑也使用大端序。
以数字0x12345678
(即十进制的305 419 896)为例
- 小端序:
0x78 0x56 0x34 0x12
- 大端序:
0x12 0x34 0x56 0x78
- 混合端序(历史悠久且非常罕见):
0x34 0x12 0x78 0x56
类型化数组指南提供了一个示例,该示例将任何数字转换为在给定端序下的二进制表示形式。
另请参阅
ArrayBuffer(数组缓冲区)
DataView(数据视图)
- 类型化数组
- Endianness(维基百科)
- 相关术语