大端序 小端序

作者:matrix 被围观: 5 次 发布时间:2026-03-31 分类:零零星星 | 无评论 »

大端序 小端序

保存多字节流数据的时候,存放方式有两种顺序:大端序、小端序
只有读取和写入顺序一致才能还原写入的数据。所以读取二进制文件的时候需要考虑字节序问题
字符串不需要考虑字节序:字符串、UTF-8文本、简单变量(非结构体)时,通常不涉及手动字节序处理。

高位、低位字节

# 16位(2字节) 的十六进制数
0x1234

0x12:==高位字节==(高字节)
0x34:==低位字节==(低字节)
类似 千分位,百分位。。。

左边的是高位,靠右边的是低位

什么是高地址,低地址

计算机内存是一格一格的地址空间:

内存地址(byte级别):
0x0000 → 0x0001 → 0x0002 → ...

地址数字小的叫「低地址」,大的叫「高地址」

例如:

内存起始(低地址) → 0x0000 
内存末尾(高地址) → 0xFFFF

大端序存储

从高位到低位存储(大端序), 利于人类可读

写入时也是左到右 从高位字节到低位字节的顺序,所以是大端序

数值:      0x1234
字节拆分:  高位 0x12    低位 0x34

内存布局:
地址       内容
0x0000     0x12   ← 放入高位字节
0x0001     0x34   ← 放入低位字节

小端序存储

从低位到高位存储(小端序),利于机器处理,处理更高效自然

写入时从左到右是从低位字节到高位字节的顺序,所以是小端序


数值: 0x1234 字节拆分: 高位 0x12 低位 0x34 内存布局: 地址 内容 0x0000 0x34 ← 放入低位字节 0x0001 0x12 ← 放入高位字节

对比

对比项 小端序(Little Endian) 大端序(Big Endian)
存储顺序 低位在低地址 高位在低地址
可读性 反人类直觉 和人类阅读习惯一致
常见平台 Intel x86, x86_64 某些网络协议、老设备等
其他文章:
本文固定链接:https://www.hhtjim.com/big-endian-little-endian.html
matrix
本文章由 matrix 于2026年03月31日发布在零零星星分类下,目前没有通告,你可以至底部留下评论。
转载请注明:大端序 小端序-HHTjim'S 部落格

添加新评论 »

 🙈 😱 😂 😛 😭 😳 😀 😆 👿 😉 😯 😮 😕 😎 😐 😥 😡 😈 💡

插入图片