小端模式与大端模式

        网上关于大小端模式的介绍已经非常多了,比如详解大端模式和小端模式。虽然如此,我对于大小端的理解还是有问题。我纠结于为啥叫“小端”和“大端”,搞不清这个问题,始终会糊涂。现在就从这个方面入手。

       把数据0x87654321想象成一个物品,它是4个字节,而且87是最高位,21是最低位。现在,要把它存在内存上。数据应该按照一定的顺序内存存放,读取时按照同样(或相反,只有这2个方向比较好)的顺序进行,这样数据就不会乱。内存是有地址的,按照从低地址到高地址进行编码,比如地址编号从0到4,而且每个地址只能放一个字节的数据,所以数据0x87654321就得拆成4个部分进行存放。我们规定,从左向右的地址序号为从0到4(因为当前的阅读习惯是从左到右,序号就从左向右依次变大,想一下坐标轴)。重点来了,数据可以这样放置(0x87,0x65,0x43,0x21),叫做存法1;也可以这样放置(0x21,0x43,0x65,0x87),叫做存法2。但是,存法的名称还是容易让人混乱,应该如何给这两种存放方式命名呢?命名规则是什么?我们以计算机读取方向为规则,从左向右读取(符合我们阅读习惯),从低地址到高地址读取(符合计算机扫描方向习惯)。对于存法1,由于先读0x87,而0x87是数据高位,是“大”的数据,所以,我们就称该方法为“大端模式”,特点是“高位数据放在低址地位置”;同理,对于存法2,由于先读0x21,而0x21是数据低位,是“小”的数据,所以,我们就称该方法为“小端模式”,特点是“低位数据放在低地址位置”。可以看到,“大端模式”中,人与计算机的方向一致,更符合人的习惯。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值