1. 程式人生 > >MSB和LSB,建議先看下面(其實就是大小端的問題)

MSB和LSB,建議先看下面(其實就是大小端的問題)

轉自 https://blog.csdn.net/u010893262/article/details/52875068/

最高有效位(MSB) 
指二進位制中最高值的位元。在16位元的數字音訊中,其第1個位元便對16bit的字的數值有最大的影響。例如,在十進位制的15,389這一數字中,相當於萬數那1行(1)的數字便對數值的影響最大。比較與之相反的“最低有效位”(LSB)。

彙編中,比如8位2進位制數10000001,其中第一個1是MSB,第二個1是LSB。在計算機計算的時候用於判斷的比如如果是整數那麼小數點(實際上是沒有小數點的,但就把那一位和下一位之間看作有)在LSB後面,如果是小數小數點在MSB後面,其中MSB在有符號數中又是符號位。

LSB(Least Significant Bit)是“最低有效位”。MSB(Most Significant Bit)是“最高有效位”。

如一個地址:

1(MSB)100 0011(LSB)

在網路通訊方面,大家說的更多的是:“Big-Endian”和“Small-Endian”的問題。

指的都是對於多位元組的資料型別(比如4位元組的32位整數),其多個位元組的順序問題,是最高位元組在前(Big-Endian)還是最低位元組在前(Small-Endian)。
比如對於123456789這個整數,其16進製為0x075BCD15,那麼按照Big-Endian的方式,它在網路上傳輸(或者在記憶體裡儲存)的4個位元組依次是:07 4B CD 15,而Small-Endian的順序正相反,是:15 CD 4B 07。

MSB和LSB雖然跟這個事情看起來有點相似,但不是一回事。通常,一個晶片的管腳中,對於一個多位元的訊號,比如32根的地址線,從低開始按0到31編個號。MSB就是31,LSB就是0。那麼如果標記為:ADDR[31:0]就是MSB first的方式,如果標記為ADDR[0:31]就是LSB first的方式。

MSB LSB:起始地址為最高位, 最後地址為最低位。

LSB MSB:起始地址為最低位,最後地址為最高位。

比如AD中,8位,最低有效位指D0