記一下大端字節序和小端字節序

首先,建議大家看原文 理解字節序

在這裏記錄我自己的理解。

大端字節序和小端字節序都只是數據在計算機的存儲順序不同而已。需要知道的是,數據是以字節爲單位存儲在計算機中的,那麼如果多個字節的數據是應該高位的字節放在地位字節的前面還是後面呢?

我們人類當然是習慣高位在地位前面了,但是計算機卻不是這樣的。所以纔會出現有大端字節序和小端字節序之分。

加上阮一峯老師的話

“只有讀取的時候,才必須區分字節序,其他情況都不用考慮。”

舉的例子也很簡單明瞭,
舉例來說,處理器讀入一個16位整數(也就是兩個字節了)。如果是大端字節序,就按下面的方式轉成值。就是將高位的1個字節左移8位加上低位字節。

# 大端字節序
x = buf[offset] << 8 + buf[offset+1]
# 小端字節序
x = buf[offset+1] << 8 + buf[offset]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章