位元組序 大端和小端

2021-07-25 17:20:03 字數 901 閱讀 6960

長久以來,位元組序的問題一直困擾我,每次搞明白之後隔一段時間又區分不出了,特此記錄,以便使用時查閱。

對於跨位元組的象的儲存,重要的有2點:

1、物件的位址

2、儲存器中對於物件中位元組的排列

其中的第二點,由於位元組排列的順序不同,引出了位元組序的問題,即在不同裝置中對於儲存的位元組順序的不同,造成的互相間通訊的轉換問題。

假設有乙個w位的整數,其按位表示如下:

[x

w−1,

xw−2

,...

,x1,

x0]

其中,xw

−1是最高有效位,而x0

是最低有效位。

再假設w是8的倍數,那麼這些位可以被分隔為位元組。

其中,最高有效位元組

[x

w−1,

xw−2

,...

,xw−

8]

而最低有效位元組

[x

7,x6

,...

,x0]

在位元組儲存時有以下2種方式

1. 最高有效位元組在最前 – 大端法

2. 最低有效位元組在最前 – 小端法

例:假設變數x型別為int,位址為0x100,值為0x12345678

大端法:

小端法:

大端位元組序和小端位元組序

簡單介紹 位元組序是由cpu和os對多位元組變數的記憶體儲存順序不同而產生的 小端位元組序 在表示變數的記憶體位址的起始位址存放低位元組,高位元組順序存放 大端位元組序 在表示變數的記憶體位址的起始位址存放高位元組,低位元組順序存放,例如 變數的值0xabcd uint32 t htonl 主機位元...

大端位元組序和小端位元組序

title 大端位元組序和小端位元組序 格列佛遊記 中記載了兩個征戰的強國,你不會想到的是,他們打仗竟然和剝雞蛋的姿勢有關。很多人認為,剝雞蛋時應該打破雞蛋較大的一端,這群人被稱作 大端 big endian 派 可是當今皇帝的祖父小時候吃雞蛋的時候碰巧將乙個手指弄破了。所以,他的父親 當時的皇帝 ...

大端位元組序和小端位元組序

計算機硬體有兩種儲存資料的方式 大端位元組序 big endian 和小端位元組序 little endian 舉例來說,數值0x2211使用兩個位元組 一位元組是8bit 儲存 高位位元組是0x22,低位位元組是0x11。大端位元組序 低位位元組在高位址,高位位元組低位址上。這是人類讀寫數值的方法...