Fork me on GitHub

大端排序小端排序

位序(Bit Order)与字节序(Byte Order)

•字节序(Byte Order) → 多字节的先后顺序(大端、小端)
•位序(Bit Order) → 单字节的先后顺序(低位先、高位先)

位序(Bit Order)

概念:一个字节内部的各个位在传输或存储时的顺序。日常使用中的位序基本上都是高位先
•高位先(MSB first):最高位在前
•低位先(LSB first):最低位在前(只存在少数硬件接口或特定协议)

例子(8位字节 0b10110010):
•MSB first(高位先):1 0 1 1 0 0 1 0
•LSB first(低位先):0 1 0 0 1 1 0 1

字节序(Byte Order)

概念:多个字节组成的“多字节数据”在内存中存放的顺序。
•大端(Big-Endian):高位字节在前,低位字节在后。
•小端(Little-Endian):低位字节在前,高位字节在后。

内存地址方向

内存地址从 低到高排列:

低地址 → 高地址
0x00  0x01  0x02  0x03

大端小端排序demo

假设有一个 32 位整数:0x12345678(十六进制),占 4 个字节。
大端 (Big-Endian):

内存地址 0x00(低地址) 0x01 0x02 0x03(高地址)
小端内容 0x12(高位) 0x34 0x56 0x78(低位)
大端内容 0x78(低位) 0x56 0x34 0x12(高位)
posted @ 2025-08-13 14:44  秋夜雨巷  阅读(38)  评论(0)    收藏  举报