首先,建議大家看原文 理解位元組序
在這裡記錄我自己的理解。
大端位元組序和小端位元組序都只是資料在計算機的儲存順序不同而已。需要知道的是,資料是以位元組為單位儲存在計算機中的,那麼如果多個位元組的資料是應該高位的位元組放在地位位元組的前面還是後面呢?
我們人類當然是習慣高位在地位前面了,但是計算機卻不是這樣的。所以才會出現有大端位元組序和小端位元組序之分。
加上阮一峰老師的話
「只有讀取的時候,才必須區分位元組序,其他情況都不用考慮。」舉的例子也很簡單明瞭,
舉例來說,處理器讀入乙個16位整數(也就是兩個位元組了)。如果是大端位元組序,就按下面的方式轉成值。就是將高位的1個位元組左移8位加上低位位元組。
# 大端位元組序
x = buf[offset]
<<
8+ buf[offset+1]
# 小端位元組序
x = buf[offset+1]
<<
8+ buf[offset]
大端位元組序和小端位元組序
簡單介紹 位元組序是由cpu和os對多位元組變數的記憶體儲存順序不同而產生的 小端位元組序 在表示變數的記憶體位址的起始位址存放低位元組,高位元組順序存放 大端位元組序 在表示變數的記憶體位址的起始位址存放高位元組,低位元組順序存放,例如 變數的值0xabcd uint32 t htonl 主機位元...
大端位元組序和小端位元組序
title 大端位元組序和小端位元組序 格列佛遊記 中記載了兩個征戰的強國,你不會想到的是,他們打仗竟然和剝雞蛋的姿勢有關。很多人認為,剝雞蛋時應該打破雞蛋較大的一端,這群人被稱作 大端 big endian 派 可是當今皇帝的祖父小時候吃雞蛋的時候碰巧將乙個手指弄破了。所以,他的父親 當時的皇帝 ...
大端位元組序和小端位元組序
計算機硬體有兩種儲存資料的方式 大端位元組序 big endian 和小端位元組序 little endian 舉例來說,數值0x2211使用兩個位元組 一位元組是8bit 儲存 高位位元組是0x22,低位位元組是0x11。大端位元組序 低位位元組在高位址,高位位元組低位址上。這是人類讀寫數值的方法...