大端和小端字节序(易混淆)

本文介绍了大端和小端字节序的概念,通过一个实例阐述了01234567H在大小端模式下的存储方式。大端字节序遵循人类思维,高位在前,低位在后;而小端字节序则相反,计算机通常采用小端方式存储数据。理解这两种字节序有助于深入计算机内存管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在说明大端和小端字节序之前,我们需要记住的几点:

在描述大小端字节序的时候,我们统一是从左向右表示计算机地址递增,如下是表示连续的四字节地址空间:
在这里插入图片描述
大端表示人类思维模式,小端表示计算机思维模式,“人大于计算机,所以人是大端”(这样会不会好记一些),大端和小端存在必要就是为了方便人和计算机之间的数据表示,就好像高级语言和机器语言一样,人可以轻易读懂高级语言,但计算机要读懂它,需要先将其转换为机器语言。
地址空间是以一个字节为单位组织的,所以在存储字节的时候也是根据1字节为单位。

现在来看一个实例,一个十六进制数01 23 45 67H,占4字节(十六进制数每一个数字用4位二进制表示,所以两位十六进制数表示1字节),此时我们将其对应到大小端字节序的表示方式上,首先看

大端:

前面说了,大端字节序是按照人类思维模式来组织的,当我们看到01 23 45 67H这个数,下意识都会认为01是高位,67是低位,因为我们平时书写数的时候就是这样,高位在左,低位在右,所以大端字节序就是这样组织的如下,
较正式一点的说法是:数据的高位存储在地址空间的低位,数据的低位存储在地址空间的高位
在这里插入图片描述
然后是

小端:

那么计算机思维是怎么组织的,这就是小端字节序模式,与人类思维相反,计算机四个字节顺序倒过来,然后按照从左到右存放在地址空间中,这里需要注意的是:颠倒顺序是以字节为单位,字节内部是不需要进行颠倒的,所以如果写成76543210H是错的,
正式说法:数据的高位存放在地址空间的高位,数据的低位存放在地址空间的低位
在这里插入图片描述
我们说小端字节序是按照计算机的思维来组织的,所以大多数计算机内部的字节序是按照小端来存储的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值