網路位元組序
網路上傳輸的資料都是位元組流,對於乙個多位元組數值,在進行網路傳輸的時候,先傳遞哪個位元組?也就是說,當接收端收到第乙個位元組的時候,它將這個位元組作為高位位元組還是低位位元組處理,是乙個比較有意義的問題;
udp/tcp/ip協議規定:把接收到的第乙個位元組當作高位位元組看待,這就要求傳送端傳送的第乙個位元組是高位位元組;而在傳送端傳送資料時,傳送的第乙個位元組是該數值在記憶體中的起始位址處對應的那個位元組,也就是說,該數值在記憶體中的起始位址處對應的那個位元組就是要傳送的第乙個高位位元組(即:高位位元組存放在低位址處);由此可見,多位元組數值在傳送之前,在記憶體中因該是以大端法存放的;
所以說,網路位元組序是大端位元組序;
比如,我們經過網路傳送整型數值0x12345678時,在80x86平台中,它是以小端發存放的,在傳送之前需要使用系統提供的位元組序轉換函式htonl()將其轉換成大端法存放的數值;如下圖2所示:
位元組序和網路位元組序
1 位元組序 由於不同的計算機系統採用不同的位元組序儲存資料,同樣乙個4位元組的32位整數,在記憶體中儲存的方式就不同.位元組序分為小尾位元組序 little endian 和大尾位元組序 big endian intel處理器大多數使用小尾位元組序,motorola處理器大多數使用大尾 big e...
位元組序和網路位元組序
1位元組序 由於不同的計算機系統採用不同的位元組序儲存資料,同樣乙個4位元組的32位整數,在記憶體中儲存的方式就不同.位元組序分為小尾位元組序 little endian 和大尾位元組序 big endian intel處理器大多數使用小尾位元組序,motorola處理器大多數使用大尾 big en...
位元組序與網路位元組序
cpu向記憶體儲存資料的方式有2種,這意味著cpu解析資料的方式也分為2種 0x20號 0x21號 0x22號 0x23號 0x12 0x32 0x56 0x78 整數0x12345678,0x12是最高位位元組,0x78是最低位位元組。因此大端中先儲存最高位位元組0x12,小端序儲存方式如下 0x...