字节序

**Endian** 和 **endianness**(或“字节序”)描述了计算机如何组织构成数字的字节。

每个内存存储位置都有一个索引或地址。每个字节可以存储一个8位数字(即介于0x000xff 之间),因此您必须保留多个字节来存储更大的数字。到目前为止,在一个数字中多个字节最常见的**排序**方式是**小端序**,它用于所有英特尔处理器。小端序意味着按从最低有效字节到最高有效字节的顺序存储字节(其中最低有效字节占用第一个或最低地址),类似于欧洲常用的日期书写方式(例如,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

类型化数组指南提供了一个示例,该示例将任何数字转换为在给定端序下的二进制表示形式

另请参阅