字节序
字节序 (Endian) 和 字节序 (endianness) (或“字节顺序”) 描述了计算机如何组织构成数字的字节。
每个内存存储位置都有一个索引或地址。每个字节可以存储一个 8 位数字(即 0x00 到 0xff 之间),因此您必须预留多个字节来存储更大的数字。目前最常见的在一个数字中存储多个字节的顺序是小端序 (little-endian),它被用于所有 Intel 处理器。小端序意味着按从低到高的顺序存储字节(其中最低有效字节占据第一个或最低地址),这类似于欧洲常见的日期书写方式(例如,2050 年 12 月 31 日)。
自然地,大端序 (big-endian) 是相反的顺序,类似于 ISO 日期(2050-12-31)。大端序也经常被称为“网络字节序”,因为互联网标准通常要求数据以大端序存储,从标准的 UNIX 套接字级别开始,一直到标准化的 Web 二进制数据结构。此外,以前使用 68000 系列和 PowerPC 微处理器的旧款 Mac 计算机也使用大端序。
数字 0x12345678(即十进制 305 419 896)的示例
- 小端序 (little-endian):
0x78 0x56 0x34 0x12 - 大端序 (big-endian):
0x12 0x34 0x56 0x78 - 混合端序 (mixed-endian)(历史上的,非常罕见):
0x34 0x12 0x78 0x56
类型化数组指南提供了一个示例,该示例 可将任何数字根据给定的字节序转换为其二进制表示形式。