大端模式和小端模式通俗说明

大端模式和小端模式

这两个模式我们经常听说,平时的协议里面也经常看见这两个词语,这两个词语主要是用来说明字节的排序方式的。

大端模式

大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。

小端模式

小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。

例程解释

下面以unsigned int value = 0x12345678为例,分别看看在两种字节序下其存储情况,我们可以用u8 buf[4]来表示value
大端模式: 低地址存放高位,如下:
  ---------------
  buf[3] (0x78) – 低位
  buf[2] (0x56)
  buf[1] (0x34)
  buf[0] (0x12) – 高位
  ---------------

小端模式: 低地址存放低位,如下:
  ---------------
  buf[3] (0x12) – 高位
  buf[2] (0x34)
  buf[1] (0x56)
  buf[0] (0x78) – 低位
  --------------

内存中的数据的读取方法
0000430: e684 6c4e 0100 1800 53ef 0100 0100 0000
0000440: b484 6c4e 004e ed00 0000 0000 0100 0000
在大端模式下,前32位应该这样读: e6 84 6c 4e ( 假设int占4个字节)
在小端模式下,前32位应该这样读: 4e 6c 84 e6( 假设int占4个字节)

  • 大端模式记忆方法: 地址的增长顺序与值的增长顺序相反,低地址存放高位
  • 小端模式记忆方法: 地址的增长顺序与值的增长顺序相同,低地址存放低位
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值