1. 程式人生 > >關於位元組序、大端、小端、網路位元組序

關於位元組序、大端、小端、網路位元組序

1. 首先最要明確一點:位元組序長度跨越多個位元組的資料被儲存的順序

2. 其次要明確一點:資料的位元組高低是高在左,低在右,就跟數學裡邊一樣。

3. 再次要明確一點:計算機的地址高低是低在左,高在右(肉眼看時)。

4. 大端:高低高低,即資料的高位元組存在低地址,低位元組存在高地址(肉眼看到的儲存順序就是資料的位元組順序)。

5. 小端:高高低低,即資料的高位元組存在高地址,低位元組存在低地址(肉眼看到的儲存順序的逆序才是資料的位元組順序)。

6. 網路位元組序:

(1)首先明確一點,前面第一條說過,只有長度跨越多個位元組的資料才存在儲存順序的問題,所以對於傳輸字串、二進位制資料時根本不存在大小端

的問題,

只有當傳輸跨越了多個位元組的資料時才存在這個問題,比如TCP報文裡的IP地址、埠,或者你的應用程式本身直接傳數值。

(2)TCP統一規定使用大端方式傳輸資料,稱為網路位元組序

(3)因此,inet_addr、htonl等這些函式就是把資料的本機位元組序轉化為網路位元組序(即大端),這些函式內部都會自行判斷本機位元組序。