天天看點

記一下大端位元組序和小端位元組序

首先,建議大家看原文 了解位元組序

在這裡記錄我自己的了解。

大端位元組序和小端位元組序都隻是資料在計算機的存儲順序不同而已。需要知道的是,資料是以位元組為機關存儲在計算機中的,那麼如果多個位元組的資料是應該高位的位元組放在地位位元組的前面還是後面呢?

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

加上阮一峰老師的話

“隻有讀取的時候,才必須區分位元組序,其他情況都不用考慮。”

舉的例子也很簡單明了,

舉例來說,處理器讀入一個16位整數(也就是兩個位元組了)。如果是大端位元組序,就按下面的方式轉成值。就是将高位的1個位元組左移8位加上低位位元組。

# 大端位元組序
x = buf[offset] << 8 + buf[offset+1]
# 小端位元組序
x = buf[offset+1] << 8 + buf[offset]
           

繼續閱讀