大端序和小端序的理解
概念:
-
大端序(Big-endian): 在大端序中,数据的高位字节存储在低地址处,而低位字节存储在高地址处。数据的字节顺序是从左到右,类似于阅读多字节数据时从最高有效字节到最低有效字节的顺序。
-
小端序(Little-endian): 在小端序中,数据的低位字节存储在低地址处,而高位字节存储在高地址处。数据的字节顺序是从右到左,类似于阅读多字节数据时从最低有效字节到最高有效字节的顺序。
区别:
区别主要体现在多字节数据的存储顺序,即多字节数据的字节排列方式。
- 大端序:最高有效字节存储在最低的内存地址,数据的字节排列是从高地址到低地址。
- 小端序:最低有效字节存储在最低的内存地址,数据的字节排列是从低地址到高地址。
示例:
假设有一个 32 位整数 0x12345678:
- 大端序表示为:
12 34 56 78,其中12是最高有效字节,存储在最低地址处。 - 小端序表示为:
78 56 34 12,其中78是最低有效字节,存储在最低地址处。
以下是 Python 中的示例代码,用于检测系统的字节序:
import sys def check_byte_order(): if sys.byteorder == 'little': print("This system uses little-endian byte order.") else: print("This system uses big-endian byte order.") # 调用函数检测字节序 check_byte_order()
这段代码使用 sys.byteorder 检测系统的字节序,如果是小端序,则输出 "This system uses little-endian byte order.",否则输出 "This system uses big-endian byte order."。
参考:
https://www.ruanyifeng.com/blog/2022/06/endianness-analysis.html

浙公网安备 33010602011771号