阿摩線上測驗 登入

申論題資訊

試卷:99年 - 99 關務特種考試_四等_資訊處理:程式語言概要#27556
科目:程式語言
年份:99年
排序:6

題組內容

四、利用 C 語言的語法,定義下列資料型態:

申論題內容

⑵ Structures BitCard 包含三個 unsigned bit 欄位(fields),換言之,face, suit, color 的長 度分別是 4, 2 及 1 bits。(6 分)

詳解 (共 2 筆)

詳解 提供者:114年高考上榜

struct BitCard {

    unsigned face : 4;
    unsigned suit : 2;
    unsigned color : 1;
};
詳解 提供者:hchungw
說明
結構體定義:
c
複製程式碼
struct BitCard {
    unsigned int face : 4;  // 4 位元欄位
    unsigned int suit : 2;  // 2 位元欄位
    unsigned int color : 1; // 1 位元欄位
};
這段程式碼定義了一個結構體 BitCard,包含三個 unsigned int 位欄位。每個欄位的位長度分別是 face(4 位元)、suit(2 位元)和 color(1 位元)。
宣告和使用結構體變數:
c
複製程式碼
struct BitCard card;
宣告了一個 BitCard 結構體變數 card。
設置欄位值:
c
複製程式碼
card.face = 10; // 設置面值為 10
card.suit = 3;  // 設置花色為 3
card.color = 1; // 設置顏色為 1
打印欄位值:
c
複製程式碼
printf("Face: %u\n", card.face);
printf("Suit: %u\n", card.suit);
printf("Color: %u\n", card.color);
注意事項
位欄位的定義使用了 : n 的語法,其中 n 是位欄位的寬度。
位欄位必須是整數類型(通常使用 unsigned int)。
設置位欄位時,請確保所賦的值在對應位欄位的範圍內。例如,4 位元欄位的範圍是 0 到 15。