1、LSB与MSB的概念
LSB:least significant bit 表示二进制数据的最低位
MSB : most significant bit 表示二进制数据的最高位
wiki对LSB和MSB的解释
(1)最低有效位(the least significant bit,lsb)是指一个二进制数字中的第0位(即最低位),具有权值为2^0,可以用它来检测数的奇偶性。与之相反的称之为最高有效位。在大端序中,lsb指最右边的位。
无符号数149的二进制形式,蓝色为最低有效位
(2)最高有效位(the Most Significant Bit,msb),是指一个n位二进制数字中的n-1位,具有最高的权值2^n − 1。与之相反的称之为最低有效位。在大端序中,msb即指最左端的位。
无符号数149的二进制形式,蓝色为最高有效位
2、大端字节序与小端字节序
之前的一篇博客有详细讲解:https://yum9193.blog.csdn.net/article/details/90700309。这里简单的回顾下
1)大端模式:
低地址 -----------------> 高地址
0x12 | 0x34 | 0x56 | 0x78
2)小端模式:
低地址 ------------------> 高地址
0x78 | 0x56 | 0x34 | 0x12
3、LSB/MSB 与 大/小端字节序的关系
这两个概念有必然联系吗?在阅读spec的时候老是会混淆这两个概念,其实这两个概念是没有必然联系的。
LSB/MSB是描述数据的最高/最低有效位的,之所以需要这样的一个概念,是因为一个8/16/32位的数据在计算机中是按位进行存储的;
大/小端字节序描述的是数据在计算机中的存储方式,大端模式比较符合正常人的书写习惯;
在看spec的时候,如果看到“LSB first”,说明数据传输采用的是小端传输。