什么是大小端?

        今天说一下什么是大小端模式?

        大小端模式指的是什么?通常我们在存储器当中存储数据的字节顺序,注意这里强调的是“字节的顺序”。因为在计算机系统中,不管是单片机DSP或者是X86,我们说一个地址对应的存储空间大小呢就是一个字节,也就是以字节为单位的。

        我们在写代码的时候,肯定不仅仅是只去写定义,比如8位这样的数据类型,肯定还有16位的(2个字节),32位的(4个字节)这样的数据。那么对于超过8位的这样的数据,当要存储的时候,就会涉及到一个排序的问题。那么这个排序的问题,也就是大小端的问题。

        比如说,我们要存储一个32位的数据0x11223344,这个16进制的数,这个数据本身11在这个数据里面它就是高字节,44在这个数据里面就是低字节。我们说的是这个数据本身。那么当我们要把这个数据保存到存储空间或者是Flash或者是内存当中的时候就会涉及到排序,也就是一再强调的大小端问题。

        比如说我们存储到内存,内存的一个地址是从0x2000000到0x20000003四个字节的存储空间当中,如果是大端的模式,就是这个硬件平台是大端的模式,那么就会将11,也就是高字节存储到低地址当中。也就是低地址存储高字节,高地址存储低字节,这就是大端模式。

        小端模式就正好相反:低地址存储低字节,高地址存储高字节。

 

        上面所说的就是这个大小端问题。其实大小端不光会涉及到在存储这个场景,也会涉及到别的,例如我们在做一些通信数据解析的时候,比如说model bus,can总线也会涉及到大小端。

        比如说我们要传输这个数据0x11223344,那么这个总线的协议,协议里面就会去规定是先传输高字节,还是先传输低字节。总线协议里面也会有这个格式,这个其实也是大小端问题。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值