大小端位元組序的判斷

2021-08-28 07:06:48 字數 586 閱讀 4132

大小端位元組序是由於cpu和os對大於乙個位元組的變數各個位元組在記憶體中的儲存順序不同而產生的。

以佔兩個位元組的十六進製制數0xabcd為例,

小端位元組序:

[15…8]

[7…0]

a bc d

[15…8]

[7…0]

c da b

typedef unionto;

int main()

網路位元組序統一為大端,主機根據不同系統而異。

幾種常見的位元組序轉換函式:

#includeuint32_t htonl(uint32_t hostlong);/*無符號長整型主機位元組序轉換為網路位元組序*/

uint32_t ntohl(uint32_t netlong);/*無符號長整型網路位元組序轉換為主機位元組序*/

uint16_t htons(uint16_t hostshort);/*無符號短整型主機位元組序轉換為網路位元組序*/

uint16_t ntohs(uint16_t netshort);/*無符號短整型網路位元組序轉換為主機位元組序*/

大小端位元組序的判斷

最近要重新研究linux網路程式設計,首先都遇到這個問題,記錄複習下吧 本文 大小端位元組序小端位元組序 little endian,將低位元組存放在記憶體的起始位址 大端位元組序 big endian,將高位元組存放在記憶體的起始位址。例如,數字index 0x11223344,在大小端位元組序方...

大小端位元組序

1.大端和小端問題 大小端位元組序與硬體有關 intel x86 都是小端位元組序 總結 大端是 按照正常我們書寫的順序來儲存的 小端是 按照我們書寫順序相反的 實現 include int main putchar n printf x n a return 0 檢視輸出結果,判斷大小端位元組序 ...

位元組序 大小端

計算機的基本儲存單元是8位單位元組。多位元組資料,如4位元組的整型資料如何儲存的呢?是高位在記憶體高位元組?還是低位在記憶體高位元組?即位元組是按如何順序存放的?也就是所謂的位元組序,按照存放順序分為大端序 big endian 和小端序 little endian 記憶體位址訪問是由低位址到高位址...