大端序和小端序的理解

概念:

  1. 大端序(Big-endian): 在大端序中,数据的高位字节存储在低地址处,而低位字节存储在高地址处。数据的字节顺序是从左到右,类似于阅读多字节数据时从最高有效字节到最低有效字节的顺序。

  2. 小端序(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

posted @ 2024-02-05 10:45  AlphaGeek  阅读(163)  评论(0)    收藏  举报