小字節序:(比如x86體系) 資料的低位元組放在低位址處,比如乙個整型數0x12345678,在記憶體中的
分布為:
-----------
| 78 | ***x_0000
-----------
| 56 | ***x_0001
-----------
| 34 | ***x_0002
-----------
| 12 | ***x_0003
-----------
little endian
分布為:
-----------
| 12 | ***x_0000
-----------
| 34 | ***x_0001
-----------
| 56 | ***x_0002
-----------
| 78 | ***x_0003
-----------
big endian
比如有如下結構體定義:
typedef struct
my_struct;
u16 value = 0x1234;
my_struct *p;
p = (my_struct *)&value;
(1)在小字節序的系統上,它的分布如下:
15 10|9 4|3 0
---------------------------------
| index | tgid | rsvd |
---------------------------------
value的值為0x1234,則:
0001 0010 0011 0100
rsvd : 0x04
tgid : 0x23
index : 0x04
(2)在大字節序的系統上,它的分布如下:
15 12|11 6|5 0
--------------------------------
| rsvd | tgid | index |
--------------------------------
value的值為0x1234,則:
0001 0010 0011 0100
rsvd : 0x01
tgid : 0x08
index : 0x34
關於大字節序和小字節序
大字節序 計算機體系結構中一種描述多位元組儲存順序的術語,在這種機制中最重要位元組 msb 存放在最低端的位址上。採用這種機制的處理器有ibm3700系列 pdp 10 mortolora微處理器系列和絕大多數的risc處理器。把高有效位放在低位址段,例如在按位元組定址的儲存器中往位址 0x0001...
網路位元組序VS主機位元組序
不同的cpu有不同的位元組序型別 這些位元組序是指整數在記憶體中儲存的順序 這個叫做主機序 最常見的有兩種 1 little endian 將低序位元組儲存在起始位址 2 big endian 將高序位元組儲存在起始位址 le little endian 最符合人的思維的位元組序 位址低位儲存值的低...
大端位元組序 小端位元組序(網路位元組序 主機位元組序)
大端位元組序 整數的高位位元組儲存在記憶體的低位址處,低位元組儲存在記憶體的高位址處。一般pc大多採用小端位元組序,也稱為主機位元組序。網路上傳輸採用大端位元組序,也稱為網路位元組序。linux中常用轉換函式如下 include uint32 t htonl uint32 t hostlong 無符...