網路位元組序與主機位元組序及相關函式

2021-08-20 15:18:23 字數 848 閱讀 3591

為了弄明白這個位元組序的區分,我們首先需要知道為什麼會有這兩種位元組序。

根本原因在於多位元組資料的儲存方式,即大小端問題。假設有乙個四位元組的 int 物件 :int a =

(01020304)16

(

01020304)16

,a 的最低位元組為

0416

0416

,最高位元組為

0116

0116

其儲存的起始位址為 0x100;

有些機器採用大端(big-endian)方式:

另一些則採用小端(little-endian)方式:

為了統一,tcp/ip 各層協議將位元組序定義為 big-endian,因此tcp/ip協議中使用的位元組序通常稱之為網路位元組序。

由此可知網路位元組序與 cpu型別、作業系統型別無關,但主機序則由 cpu 型別和其上執行的作業系統決定:

cpu作業系統

位元組序alpha

全部little endian

hp-pa

ntlittle endian

hp-pa

unix

big endian

intelx86

全部little endian

在使用little endian的系統中 這些函式會把位元組序進行轉換,在使用big endian型別的系統中 這些函式會定義成空巨集。

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

主機位元組序 不同的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 最符合人的思維的...