位元組序與網路位元組序

2021-08-25 06:06:40 字數 750 閱讀 8337

cpu向記憶體儲存資料的方式有2種,這意味著cpu解析資料的方式也分為2種

0x20號     0x21號     0x22號     0x23號

0x12          0x32        0x56         0x78

整數0x12345678, 0x12是最高位位元組,0x78是最低位位元組。因此大端中先儲存最高位位元組0x12,

小端序儲存方式如下:

0x20號     0x21號     0x22號     0x23號

0x78          0x56        0x34         0x12

先儲存的是最低位位元組0x78,每種cpu的儲存方式均不同,目前主流的intel系列cpu以小端序方式儲存資料

網路位元組序統一為大端序

s指的是short,l指的是long(linux中long佔4個位元組),htons解釋為把short型資料從主機位元組序轉化為網路位元組序,

ntohs解釋為把short型資料從網路位元組序轉化為主機位元組序

in_addr_t inet_addr(const char *string);

將字串形式的ip位址轉化為32位整型資料,該函式在轉換過程中同時進行網路位元組序轉換,成功時返回32位整型數,失敗時會返回inaddr_none

int inet_aton(const char *string, struct in_addr *addr);

此函式會自動把ip位址填入該結構體變數

atoi把字串型別轉換為整數型

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

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