網路基礎知識 網路位元組序與主機位元組序

2021-10-02 17:43:11 字數 946 閱讀 7703

多位元組的數值在記憶體中高低位的排列方式會影響所表示的數值。根據位元組高低位排序方式的不同,可以分為:大端位元組序(big endian)和 小端位元組序(little endian)。

大端位元組序是指乙個整數的高位位元組儲存在記憶體的低位址處,可以理解為數值的高位部分靠前儲存。以0x12343abcd為例,假如儲存在記憶體中的起始位址為0x00000000,則0x1234abcd在記憶體中的儲存為:

位址0x00000000處儲存內容為:0x12

位址0x00000001處儲存內容為:0x34

位址0x00000002處儲存內容為:0xab

位址0x00000003處儲存內容為:0xcd

小端位元組序是指乙個整數的低位位元組儲存在記憶體的低位址處,可以理解為數值的低位部分靠前儲存。以0x12343abcd為例,假如儲存在記憶體中的起始位址為0x00000000,則0x1234abcd在記憶體中的儲存為:

位址0x00000000處儲存內容為:0xcd

位址0x00000001處儲存內容為:0xab

位址0x00000002處儲存內容為:0x34

位址0x00000003處儲存內容為:0x12

#include

uint32_t

htonl

(uint32_t hostlong)

;uint32_t

htons

(uint32_t hostshort)

;uint32_t

ntohl

(uint32_t hostlong)

;uint32_t

ntohl

(uint32_t hostshort)

;

不同主機位元組序的兩台主機進行通訊時有可能造成資料二義。

因此規定:在網路通訊中統一使用大端位元組序作為網路位元組序進行通訊。

主機位元組序會對儲存時大於1個位元組的資料型別造成影響。

主機位元組序與網路位元組序

主機位元組序 不同的cpu有不同的位元組序型別 這些位元組序是指整數在記憶體中儲存的順序 這個叫做主機序 最常見的有兩種 1 little endian 將低序位元組儲存在起始位址 2 big endian 將高序位元組儲存在起始位址 le little endian 最符合人的思維的位元組序 位址...

網路位元組序與主機位元組序

1 本地位元組序 由 於不同的計算機系統採用不同的位元組序儲存資料,同樣乙個4位元組的32位整數,在記憶體中儲存的方式就不同.位元組序分為小尾位元組序 little endian 和大尾位元組序 big endian intel處理器大多數使用小尾位元組序,motorola處理器大多數使用大尾 bi...

網路位元組序與主機位元組序

網路位元組序與主機位元組序 不同的cpu有不同的位元組序型別 這些位元組序是指整數在記憶體中儲存的順序 這個叫做主機序 最常見的有兩種 1 little endian 將低序位元組儲存在起始位址 2 big endian 將高序位元組儲存在起始位址 le little endian 最符合人的思維的...