主機位元組序:多於乙個位元組的資料型別(多位元組資料型別)在記憶體中的存放順序叫主機位元組序。
最常見的位元組序有兩種:小端位元組序和大端位元組序。
小端位元組序:little endian,簡稱le,將資料的最低位元組放在記憶體的起始位置。也就是說,記憶體位址較低的位元組位存放資料的低位位元組,記憶體位址較高的位元組位存放資料的高位位元組。可以簡記為:高高低低。
大端位元組序術語「小端」和「大端」表示多位元組值的哪一端(小端或大端)儲存在該值的起始位址。小端儲存在起始位址就是小端位元組序;大端儲存在起始位址就是大端位元組序。
網路位元組序標準規定為大端位元組序。
不同平台上會對主機位元組序進行轉化,成為網路位元組序後再進行傳送,到主機後再轉化為主機位元組序。
均返回:網路位元組序值
uint16_t ntohs(uint16_t net16bitvalue);
uint32_t ntohl(uint32_t net32bitvalue);
均返回:主機位元組序值
網路位元組序與主機位元組序及相關函式
為了弄明白這個位元組序的區分,我們首先需要知道為什麼會有這兩種位元組序。根本原因在於多位元組資料的儲存方式,即大小端問題。假設有乙個四位元組的 int 物件 int a 01020304 16 01020304 16 a 的最低位元組為 0416 0416 最高位元組為 0116 0116 其儲存的...
大端位元組序 小端位元組序(網路位元組序 主機位元組序)
大端位元組序 整數的高位位元組儲存在記憶體的低位址處,低位元組儲存在記憶體的高位址處。一般pc大多採用小端位元組序,也稱為主機位元組序。網路上傳輸採用大端位元組序,也稱為網路位元組序。linux中常用轉換函式如下 include uint32 t htonl uint32 t hostlong 無符...
位元組序和網路位元組序
1 位元組序 由於不同的計算機系統採用不同的位元組序儲存資料,同樣乙個4位元組的32位整數,在記憶體中儲存的方式就不同.位元組序分為小尾位元組序 little endian 和大尾位元組序 big endian intel處理器大多數使用小尾位元組序,motorola處理器大多數使用大尾 big e...