bit-fields

    4熱度

    3回答

    我是新來的工作與位。我試圖使用現有的協議,它可以發送三種不同類型的消息。 類型1是一個16位結構: struct digital { unsigned int type:2; unsigned int highlow:1; unsigned int sig1:5; unsigned int :1; unsigned int sig2:7; }; 的前兩個比特(型,在上述我的結構)

    6熱度

    5回答

    位域是C概念還是C++? 它只能在結構中使用嗎?我們還可以使用其他什麼地方? AFAIK,位域是特殊的結構變量,它只佔用指定的內存空間。的位。它在節省內存和其他方面很有用。 我正確嗎? 我編寫了一個小程序,瞭解位域的使用 - 但是,我認爲按預期的方式是行不通的。我期望以下結構的大小爲1 + 4 + 2 = 7個字節(考慮到unsigned int的大小在我的機器上是4個字節),但令我驚訝的是它變成

    1熱度

    5回答

    所有, 是否有無論如何我們可以聲明變量指定位字段在那些不是任何結構或聯合的成員。如果沒有,那麼是否有,我們可以通過指定一個變量它允許使用的位數。 由於 麥迪

    9熱度

    4回答

    位域可用於聯合?

    3熱度

    3回答

    是否有一種簡單的方法可以在不使用位字段的情況下讀/寫一個字節的半字節? 我總是需要讀取兩個半字節,但需要單獨寫入每個半字節。 謝謝!

    3熱度

    6回答

    我有一個數據流只能以8位字節尋址,我想將其解析爲6位元素並將其存儲到數組中。有沒有最好的方法來做到這一點? 11110000 10101010 11001100 成 像 111100|001010|101011|001100 的陣列(可以具有零填充,只是需要尋址這樣) 和數據是一個8位的陣列,其也是6位的倍數,並不是真正的無窮無盡

    12熱度

    3回答

    我有位域聲明是這樣的: typedef struct morder { unsigned int targetRegister : 3; unsigned int targetMethodOfAddressing : 3; unsigned int originRegister : 3; unsigned int originMethodOfAddressi

    0熱度

    2回答

    閱讀我有這樣的typedef: typedef union { unsigned Value; unsigned Timestamp:16; } BITFIELD; ,並得到這個編譯器警告: BITFIELD bitfield; // read from uninitialised memory - may result in unexpected behaviou

    10熱度

    1回答

    今天我與位域實驗時發現了令人震驚的行爲。爲了討論和簡單起見,下面是一個示例程序: #include <stdio.h> struct Node { int a:16 __attribute__ ((packed)); int b:16 __attribute__ ((packed)); unsigned int c:27 __attribute__ ((pac

    7熱度

    2回答

    我有一個使用聲明位字段如下 typedef struct my{ const char *name; uint8_t is_alpha : 1; uint8_t is_hwaccel : 1; uint8_t x_chroma_shift; uint8_t y_chroma_shift; } mystr; uint8_t被Typedef的到