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 最符合人的思維的...