大端小端和共同體

2021-06-22 19:43:17 字數 1491 閱讀 3161

大端小端:

所謂的大端模式,是指資料的低位儲存在記憶體的高位址中,而資料的高位,儲存在記憶體的低位址中;

所謂的小端模式,是指資料的低位儲存在記憶體的低位址中,而資料的高位儲存在記憶體的高位址中。

32bit寬的數0x12345678在little-endian模式cpu記憶體中的存放方式(假設從位址0x4000開始存放)為:

記憶體位址

0x4000

0x4001

0x4002

0x4003

存放內容

0x78

0x56

0x34

0x12

而在big-endian模式cpu記憶體中的存放方式則為:

記憶體位址

0x4000

0x4001

0x4002

0x4003

存放內容

0x12

0x34

0x56

0x78

一般的微處理器用的是小端。

共同體:

union 聯合名

;

成員表公用一段記憶體, 對於聯合的不同成員賦值, 將會對其它成員重寫, 原來成員的值就不存在了

應用:

1、判斷大端還是小端

#include using namespace std;

union t

;void main()

;void main()

//顯示接收到的資料

cout<

2、筆試題目

#include

union

a; void main()

b)

main() 

half;

}number;

number.i=0x4241; /*聯合成員賦值*/

printf("%c%c\n", number.half.first, mumber.half.second);

number.half.first='a'; /*聯合中結構成員賦值*/

number.half.second='b';

printf("%x\n", number.i);

getch();

}

答案:ab (0x41 對應'a',是低位;ox42 對應'b',是高位)

6261 (number.i 和 number.half 共用一塊位址空間),

注意是十六進製制的輸出,十進位制的話是25185

結構體和共同體

結構體適用用是將不同型別的資料成員組合到一起,適用於關係緊密和邏輯相關的資料進行處理 與共同體相比較而言,共同體雖然也能表示不同型別資料的資料集合,但是其資料成員的情形是互斥的,每一時刻只有乙個資料成員起作用,例如乙個人的婚姻狀況,未婚 已婚 離婚,這三個狀態在某一時期只能存在一種情況。struct...

結構體和共同體

結構體 定義多個不同型別的成員變數組合在一起,以實現複雜的資料結構。格式 struct 標籤名 變數1 變數2 或者 typedef struct 標籤名 示例 struct books book 當兩個結構體互相包含,則需要對其中乙個結構體進行宣告 宣告 struct b 結構體a指向結構體b s...

結構體,共同體

共用體 構造資料型別,也叫聯合體 用途 使幾個不同型別的變數共佔一段記憶體 相互覆蓋 結構體是一種構造資料型別 用途 把不同型別的資料組合成乙個整體 自定義資料型別 結構體變數所佔記憶體長度是各成員佔的記憶體長度的總和。共同體變數所佔記憶體長度是各最長的成員佔的記憶體長度。共同體每次只能存放哪個的一...