bit-fields

    0熱度

    1回答

    如何確定位域的順序?我可以通過執行x.c來更改位域的元素,其中x是結構類型的變量。我試圖掩飾它並將其打印出來,但我只能打印結構中的每個元素,而不是整個變量。我試圖給一個位域的元素指定一個指針,但是它出現了一個錯誤。確定C編譯器的位域順序的最佳方法是什麼?例如,這個結構將以什麼順序表示? struct bit_fields { unsigned int a : 6, b : 8,

    3熱度

    3回答

    我一直在考慮在C-過程如下分配: 我實現分配給解碼8字節長的長整型131809282883593如下: #include <stdio.h> #include <string.h> struct Message { unsigned int hour : 5; unsigned int minutes : 6; unsigned int s

    2熱度

    2回答

    我有以下問題 我有兩個表第一個表包含像01001101110這樣的字符串每個數字代表表2中提到的技能。 所以第一個數字表示零,這意味着該人不具有與ID爲1的技術人員的第二個數字表示人確實與ID技能2 表1: |-----------|-----------------------------| |  name  |             skillset           | |-----

    1熱度

    1回答

    我對bittorrent中的位域消息有點混淆。我已經注意到下面問題形式的混亂。 可選VS必需 位字段握手序列 完成 後發送立即我假設這是強制性的,即握手後,必須遵循一個位域消息。正確? 何時期望位域? 位域消息可以在 握手序列完成後,僅被立即發送和任何其它消息之前 發送 假設我閱讀此明確雖然是可選的消息。對方仍然可以在任何消息(如請求,扼流器,解焦等)之前廣播位域消息。正確嗎? 在第一字節中的高位

    -1熱度

    3回答

    struct st { int a1 : 3; int a2 : 2; int a3 : 1; } void main(void) { x.a3 = -1; if (x.a3 == -1) printf("TRUE\n"); else printf("FALSE\n"); x.a3 = 1; if (x.

    0熱度

    1回答

    我想使用C++ 11 enum class作爲位域並找到一個很好的方法here。 但我卡住了,如果我的枚舉類聲明不在全局名稱空間中,而是在自定義名稱空間或類的內部。例如: - #define ENABLE_BIT_OPERATORS(E) template<> struct enable_bitmask_operators<E> { static constexpr bool enable=tru

    1熱度

    2回答

    我有以下代碼: #include <cstdint> #pragma pack(1) using MyType_t = union { uint8_t buffer[16]; struct { uint64_t a : 55; uint64_t b : 24; uint64_t c : 1; uint64_t

    0熱度

    1回答

    我想製作一個int位字段的數組,其中每個int都有一位,這意味着所有數字都是1或0,我該如何編碼? 我試圖 struct bitarr { int arr : 1[14]; }; 但是,這並不編譯,我不認爲這是你不能做這些位的排列方式

    1熱度

    1回答

    用於學習高效的內存管理我想知道如何使用單個位字段來共同表示8個bool值的值,以及如何評估和設置每一位。 原因是在我自己的程序,我不會粘貼,因爲成千上萬的行。 在全球範圍內,有百多個,bools都需要,這對FPS有很大的影響。 例如: uint8_t b0:1, b1:1, b2:1, b3:1, b4:1, b5:1, b6:1, b7:1; if (!b0) { /

    0熱度

    2回答

    我需要將當前時間打包到限制位模式。 頂部5bits是小時,接下來的6是分鐘,接下來的6秒&其餘轉換回32位integrer之前被保留 我想出了一個討厭BITAND掩模,然後字符串連接。 這看起來過於複雜& CPU昂貴。有沒有更高效的&更重要的一點,優雅的方法?