记一下大端字节序和小端字节序

首先,建议大家看原文 理解字节序

在这里记录我自己的理解。

大端字节序和小端字节序都只是数据在计算机的存储顺序不同而已。需要知道的是,数据是以字节为单位存储在计算机中的,那么如果多个字节的数据是应该高位的字节放在地位字节的前面还是后面呢?

我们人类当然是习惯高位在地位前面了,但是计算机却不是这样的。所以才会出现有大端字节序和小端字节序之分。

加上阮一峰老师的话

“只有读取的时候,才必须区分字节序,其他情况都不用考虑。”

举的例子也很简单明了,
举例来说,处理器读入一个16位整数(也就是两个字节了)。如果是大端字节序,就按下面的方式转成值。就是将高位的1个字节左移8位加上低位字节。

# 大端字节序
x = buf[offset] << 8 + buf[offset+1]
# 小端字节序
x = buf[offset+1] << 8 + buf[offset]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值