RFC中MSB与LSB理解

1 基本

阅读RFC文档时,经常会看到MSB与LSB的缩写,如下图所示:

msb-lsb

各自缩写:
MSB:Most Significant Bit,多字节序列中具有最大权重的字节
LSB:Last(Least) Significant Bit,多字节序列中最小权重的字节
其实还是很难理解,如上图所示,MSB指的是0~7位,LSB指的是8~15位。

2 扩展

谈到字节序,必然离不开大端字节序小端字节序网络字节序主机字节序这四个概念

2.1 大端字节序和小端字节序

英文名是big endian 和little endian,主要跟多字节数据的存储顺序有关,通常来说Power PC使用的是大端字节序存储,Intel X86体系使用小端字节序存储。

简单来说,CPU对内存会进行编址,如:0x01, 0x02,每个地址存储一个字节,因此对于多字节序列来说就存在先存低字节还是高字节,比如对于整数0x1234(十六进制表示),是将0X12存到地址0x01还是地址0x02。这里又提到两个新的概念:低字节高字节

2.1.1 低字节和高字节

举个例子,整数0X1234,高字节是0x12,低字节是0x34,为什么这样定义?学习计算机课程入门时就有提到高字节和低字节,里面就是这么定义的。其实也容易理解,0X1234,如果转换成十进制,显然0x12权重比较大,0x34权重比较小,发现这不是之前所提到的MSBLSB么?

MSB就是我们通常提到的高字节
LSB就是我们通常提到的低字节

2.2.2 定义大端字节序和小端字节序

大端字节序就是低地址存放高字节(MSB)
小端字节序就是低地址存放低字节(LSB)

对于上面的例子来说:
大端字节序存放结果:

0x12 存放在0x01, 0x34存放在0x02

小端字节序存放结果:

0x12存放在0x02,0x34存放在0x01

3 总结

MSB就是我们通常提到的高字节
LSB就是我们通常提到的低字节

RFC文档列出多字节序列是用于指导数据通过网络发送多字节序列时应用程序如何打包,应用程序收到一段buffer时如果解包。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【大端(Big Endian)与小端(Little Endian)简介】Byte Endian是指字节在内存中的组...
    boboxxd阅读 1,176评论 1 0
  • 最全的iOS面试题及答案 iOS面试小贴士 ———————————————回答好下面的足够了-----------...
    大罗Rnthking阅读 990评论 0 2
  • 今年总决赛,狗血的剧本或许会让卫冕冠军勇士抱憾终身。尽管前四场以3比1拿下赛点,并很有机会在甲骨文球馆完成两连冠。...
    zoneball阅读 335评论 0 0
  • 今晚回家陪老妈吃饭,一是自己累了,二是很久没有陪老妈吃饭了。 我和老妈两人在电视机前一边吃面,一边看《云某之上》,...
    D018李静阅读 160评论 1 2
  • 要高考了,转眼间高考已经是快十年的事了。不紧要慨叹一声,时间过得好快呀!快的让我快要忘记过去的日子,快的让我不禁想...
    浒先生阅读 187评论 0 0