title | slug | l10n | ||
---|---|---|---|---|
字节序 |
Glossary/Endianness |
|
{{GlossarySidebar}}
字节序或字节顺序描述了计算机如何组织构成数字的字节。
每个内存存储位置都有一个索引或地址。每一字节可以存储一个 8 位数字(即介于 0x00
和 0xff
之间),因此,你必须保留不止一个字节来储存一个更大的数字。现在,大部分需占用多个字节的数字排序方式是小端序,所有的英特尔处理器都使用小端序。小端序的意思是按照从最低有效位到最高有效位的顺序存储字节(其中最低有效字节位于第一个地址,或最小的地址),可类比欧洲通用的日期书写方式(例如,31 December 2050)。
自然,大端序是相反的顺序,可以类比 ISO 日期格式(例如 2050-12-31)。大端序通常被称作“网络字节顺序”, 因为互联网标准,从标准 Unix 套接字层开始,一直到标准化网络的二进制数据结构,通常要求数据使用大端序存储。此外,老式 Mac 计算机的 68000 系列 和 PowerPC 微处理器曾使用大端序。
例如,用不同字节序存储数字 0x12345678
(即十进制中的 305 419 896):
- 小端序:
0x78 0x56 0x34 0x12
- 大端序:
0x12 0x34 0x56 0x78
- 混合序(曾经的做法,非常罕见):
0x34 0x12 0x78 0x56
类型化数组指南提供了将任何数字转换为给定字节序的二进制表示的一个示例。