关于BigEndian和LittleEndian和MSB和LSB

BigEndian和LittleEndian
首先了解一些概念:
MSB(Most Significant Bit):高字节。
对于一个多字节的数据,高字节也就是它的高位(最低位应该是“个位”)。

LSB(Least Significant Bits)
对于一个多字节的数据,低字节也就是它的低位(最低位应该是“个位”)。
这里"B"是大写的表示字节,小写"b"表示位。

高地址和低地址:
对于内存的地址,从0x000000开始增加,也就是从低地址向高地址增加的过程。

BigEndian:指低地址存放最高有效字节(MSB)。又叫降序。
这里,是“正”序的体现符合我们的思维习惯。例如,我们写一个数字0x1234,从左向右写(高位->低位),那么在内存上也从小向大来存放(低->高),所以内存中看到的就依次是12 34.

LittleEndian:是低地址存放最低有效字节(LSB)。又叫开序。
这里,是“反”序的体现符合我们的思维习惯。例如,我们写一个数字0x1234,从左向右写(高位->低位),那么在内存上也从大向小来存放(高->低),所以内存中看到的就依次是34 12.
C/C 语言编写的程序里数据存储顺序是跟编译平台所在的CPU相关的,而JAVA编写的程序则唯一采用big endian方式来存储数据.
所有网络协议也都是采用big endian的方式来传输数据的。所以有时我们也会把big endian方式称之为网络字节序。当两台采用不同字节序的主机通信时,在发送数据之前都必须经过字节序的转换成为网络字节序后再进行传输。ANSI C中提供了四个转换字节序的宏。

自己总结了两种记忆方式:除了前面说的那种,还有一个:
Endian就是“端”,内存的端确定的就是最开始的0地址(最低地址),所以BigEndian就是大的存在低地址。大的,当然就是最高位。LittleEndian类似.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值