根據cpu的不同我們可以把主機位元組序在記憶體中儲存的順序叫做主機序,也就是我們常說的,大端機和小端機。我們經常看到的有兩種:
1.小端機(記憶體中以小端序儲存的機器);將低位元組序儲存在開始的位址(及記憶體較小的記憶體)
舉個例子:我們將記憶體從左到右排列:在記憶體中存放0x01020304
2000 2001 2002 2003
小 : 04 03 02 01
大: 01 02 03 04
(我們熟悉的x86系列的cpu都是小端序)
網路位元組序就不一樣了,它是tcp/ip中規定好的一種表示資料的格式,沒有什麼大端小端之分。跟cpu和作業系統都沒關係。只是為了保證資料在不同的作業系統之間能夠正確的傳遞共享。網路位元組序是用的大端序模式。所以在我們用的小端機中如果伴隨著資訊的傳遞,就會有大端序,小端序之間的轉換。當然這都是系統內部的好函式自己來完成的。
發表於
2015-04-28 15:52
周某某 閱讀(
...)
編輯收藏
重新整理頁面
返回頂部
大端位元組序 小端位元組序(網路位元組序 主機位元組序)
大端位元組序 整數的高位位元組儲存在記憶體的低位址處,低位元組儲存在記憶體的高位址處。一般pc大多採用小端位元組序,也稱為主機位元組序。網路上傳輸採用大端位元組序,也稱為網路位元組序。linux中常用轉換函式如下 include uint32 t htonl uint32 t hostlong 無符...
大端和小端(網路位元組序和主機位元組序)
大端和小端 網路位元組序和主機位元組序 大端 big endian 即網路位元組序。小端 littile endian 即主機位元組序。記憶方式 網路的範圍很大,所以大端是網路位元組序。大端方式將高位存放在低位址,小端方式將低位存放在高位址。採用大端方式進行資料存放符合人類的正常思維,而採用小端方式...
大端和小端(網路位元組序和主機位元組序)
大端和小端 網路位元組序和主機位元組序 大端 big endian 即網路位元組序。小端 littile endian 即主機位元組序。記憶方式 網路的範圍很大,所以大端是網路位元組序。大端方式將高位存放在低位址,小端方式將低位存放在高位址。採用大端方式進行資料存放符合人類的正常思維,而採用小端方式...