位元組序 大小端

2021-08-02 19:41:11 字數 727 閱讀 7633

計算機的基本儲存單元是8位單位元組

多位元組資料,如4位元組的整型資料如何儲存的呢? 是高位在記憶體高位元組?還是低位在記憶體高位元組?即位元組是按如何順序存放的?也就是所謂的位元組序,按照存放順序分為大端序(big-endian)和小端序(little-endian)。

記憶體位址訪問是由低位址到高位址方向進行的。

大端序(big-endian)

高位在記憶體低位址,即順著記憶體的位址增長方向,是先放高位資料,再放低位資料。如0x12345678,在記憶體中存放依次是:12 34 56 78,這種位元組序符合我們的閱讀習慣。

小端序(little-endian)

低位在記憶體低位址,即順著記憶體的位址增長方向,是先放低位資料,再放高位資料。如0x12345678,在記憶體中存放依次是:78 56 34 12。通常arm嵌入式產品用的是小端序。

網路序,採用的是大端序,符合人們的閱讀習慣,不管什麼主機在進行網路通訊時,一律要轉換成標準的網路序(htons、htonl函式)。

/* 程式設計確定主機是何種位元組序 */

/* 返回:0 大端序;1 小端序 */

char is_little_endian()

ps:不同主機cpu採用的位元組序可能不統一,有的是大端,有的是小端,假如統一標準,位元組序的問題也就不存在了。

大小端位元組序

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

大小端位元組序

計算機硬體有兩種儲存資料的方式 大端位元組序 big endian 和小端位元組序 little endian 比如十六進製制數0x0102,十六進製制每個數字佔4bit,四個數字16bit,也就是2byte,2個位元組儲存。0x0102高位位元組是0x01,低位位元組是0x02。l大端位元組序 高...

大小端, 位元組序

位元組 byte 作為計算機世界的計量單位,和大家手中的人民幣多少多少 元 乙個意思。反正,到了計算機的世界,說位元組就對了,使用人家的基本計量單位,這是入鄉隨俗。比如,乙個電影是1g個位元組 1gb 一首歌是10m個位元組 10mb 一張是1k個位元組 1kb 一元錢可以幹嘛?啥也幹不了,公交都不...