【计算机基础】 --- LSB、MSB与大/小端字节序

简介: 【计算机基础】 --- LSB、MSB与大/小端字节序

1、LSB与MSB的概念

LSB:least significant bit 表示二进制数据的最低位

MSB : most significant bit 表示二进制数据的最高位

wiki对LSB和MSB的解释

(1)最低有效位the least significant bitlsb)是指一个二进制数字中的第0位(即最低位),具有权值为2^0,可以用它来检测数的奇偶性。与之相反的称之为最高有效位。在大端序中,lsb指最右边的位。

无符号数149的二进制形式,蓝色为最低有效位

 

(2)最高有效位the Most Significant Bitmsb),是指一个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”,说明数据传输采用的是小端传输。

相关文章
|
6月前
|
存储
计算机存储,字节分为大端和小端
计算机存储,字节分为大端和小端
91 1
|
6月前
|
存储 网络协议 API
大端与小端概念、多字节之间与单字节多部分的大小端转换详解
大端与小端概念、多字节之间与单字节多部分的大小端转换详解
422 1
|
2月前
|
Java
Byte 高位/低位简介绍(大端格式/小端格式)
Byte 高位/低位简介绍(大端格式/小端格式)
142 1
|
6月前
网络字节序和主机序(大端和小端)详细解释--通过封装IP协议头去理解网络字节序
网络字节序和主机序(大端和小端)详细解释--通过封装IP协议头去理解网络字节序
615 1
|
存储 网络协议 芯片
清晰讲解LSB、MSB和大小端模式及网络字节序
清晰讲解LSB、MSB和大小端模式及网络字节序
1965 0
|
存储 小程序 编译器
大小端字节序详解
在开始正文之前,我想先问一下大家,内存中是怎样存放一个数的?当然啊,我这里问的不是数据存储的形式(比如整数存原码,负数存补码),而是一个数据存放的顺序 我们先看下面这个例子,当我们看看当把十六进制函数0x11223344存进内存中会是怎么样的。
大小端字节序详解
大小端(字节序)存储模式
大小端(字节序)存储模式
大小端(字节序)存储模式
|
存储 Java C++
大端(Big Endian)与小端(Little Endian)简介与实现
【大端(Big Endian)与小端(Little Endian)简介】Byte Endian是指字节在内存中的组织,所以也称它为Byte Ordering,或Byte Order。     对于数据中跨越多个字节的对象,我们必须为它建立这样的约定: (1) 它的地址是多少? (2) 它的字节在内存中是如何组织的?     针对第一个问题,有这样的解释:     对于跨
2397 0
|
存储
大端模式、小端模式、高字节序、低字节序、MSB、LSB
你知道内存是怎么读取数据的吗?知道数据是怎么一个一个字节发送的吗?是低字节先发还是高字节先发?是bit0先发还是bit7先发?是从低地址开始读还是从高地址开始读?看完本篇比应该就明白了~
1532 0
大端模式、小端模式、高字节序、低字节序、MSB、LSB
|
存储 网络协议 Unix
大端小端(Big- Endian和Little-Endian)探究
字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。其实大部分人在实际的开发中都很少会直接和字节序打交道。唯有在跨平台以及网络程序中字节序才是一个应该被考虑的问题。
744 0