TCP IP 大端 小端位元組序,網路位元組序

2021-09-19 23:20:27 字數 1568 閱讀 4276

不同的cpu有不同的位元組序型別 這些位元組序是指整數在記憶體中儲存的順序 這個叫做主機序

最常見的有兩種:

1. little endian:將低序位元組儲存在起始位址

2. big endian:將高序位元組儲存在起始位址

最符合人的思維的位元組序

位址低位儲存值的低位

位址高位儲存值的高位

怎麼講是最符合人的思維的位元組序,是因為從人的第一觀感來說

低位值小,就應該放在記憶體位址小的地方,也即記憶體位址低位

反之,高位值就應該放在記憶體位址大的地方,也即記憶體位址高位

最直觀的位元組序

位址低位儲存值的高位

位址高位儲存值的低位

為什麼說直觀,

不要考慮對應關係,

只需要把記憶體位址從左到右按照由低到高的順序寫出,把值按照通常的高位到低位的順序寫出

兩者對照,乙個位元組乙個位元組的填充進去

例子:在記憶體中雙字0x01020304(dword)的儲存方式

type

4000

4001

4002

4003

le04

0302

01be

0102

0304

例子:如果我們將0x1234abcd寫入到以0x0000開始的記憶體中,則結果為

membig-endian

little-endian

0x0000

0x12

0xcd

0x0001

0x34

0xab

0x0002

0xab

0x34

0x0003

0xcd

0x12

是tcp/ip中規定好的一種資料表示格式,它與具體的cpu型別、作業系統等無關,從而可以保證資料在不同主機之間傳輸時能夠被正確解釋。網路位元組順序採用big endian排序方式。**

不同的cpu上執行不同的作業系統,位元組序也是不同的,參見下表。

處理器作業系統

位元組排序

alpha

全部little endian

hp-pa

ntlittle endian

hp-pa

unix

big endian

intelx86

全部little endian <—–x86系統是小端位元組序系統

motorola680x()

全部big endian

mips

ntlittle endian

mips

unix

big endian

powerpc

ntlittle endian

powerpc

非ntbig endian <—–ppc系統是大端位元組序系統

rs/6000

unix

big endian

sparc

unix

big endian

ixp1200 arm核心

全部little endian

網路位元組序 大端 小端

1.小端法 little endian 就是低位位元組排放在記憶體的低位址端 即該值的起始位址 高位位元組排放在記憶體的高位址端 2.大端法 big endian 就是高位位元組排放在記憶體的低位址端 即該值的起始位址 低位位元組排放在記憶體的高位址端 網路上傳輸的資料都是位元組流,對於乙個多位元組...

大端 小端 網路位元組序

2010 10 10 17 44 58 分類 c vc c 舉報 字型大小訂閱 一 大端 小端 大端 和 小端 表示多位元組值的哪一端儲存在該值的起始位址處 小端儲存在起始位址處,即是小端位元組序 大端儲存在起始位址處,即是大端位元組序 或者說 1.小端法 little endian 就是低位位元組...

大端 小端 網路位元組序

網路位元組序 network byte order 一般是指大端 big endian,對大部分網路傳輸協議而言 傳輸,大端小端的概念是面向多位元組資料型別的儲存方式定義的,小端就是低位在前,大端就是高位在前,其中 前 是指靠近記憶體低位址,儲存在硬碟上就是先寫那個位元組 1 首先大小端是面向多位元...