bit-fields

    1熱度

    3回答

    我會通過Windows設備驅動程序,我看到結構這樣的代碼: struct driver1 { UINT64 Readable : 1; UINT64 Writable : 1; UINT64 Executable : 1; UINT64 Control : 3; UINT64 Status : 1; UINT64 R

    2熱度

    2回答

    我有一個表的大小,我想保持下來,其中一列可以被視爲一個5字節的無符號整數。這是我不會需要搜索的列。 MySQL提供整數數據類型 TINYINT,1字節整數 SMALLINT,2字節整數 MEDIUMINT,3字節整數 INT,爲4字節整數 BIGINT ,用於8字節整數。 但它也提供BIT(M),1≤中號≤64。這存儲(有效)0至2 M-1無符號整數。是否有理由避免使用BIT(40)列來存儲5字節

    6熱度

    5回答

    在這個環節我碰到 http://lxr.linux.no/#linux+v2.6.36/include/linux/pci.h#L299 整數聲明 unsigned int is_added:1;我已經做C語言程序,並宣佈整數它們,卻在上面我看到使用的 來聲明一個unsigned int: 什麼那種語法是?

    19熱度

    4回答

    我對C沒有完全確定,但C++允許0長度的未命名位域。例如: struct X { int : 0; }; 問題一:怎麼看的實際用途你想到什麼? 問題二:你知道哪些現實世界的實際用途(如果有的話)? 編輯冰犯罪的回答後,例如 編輯: OK,由於目前的答案,我現在知道了理論上的目的。但問題是關於實際用途,使他們仍然持有:)

    3熱度

    4回答

    首先,我不關心可移植性,並且可以安全地假定字節序不會改變。假設我讀取了一個硬件寄存器值,我想將這個寄存器值覆蓋在位域上,以便我可以在不使用位掩碼的情況下引用寄存器中的各個字段。 編輯:修正了GMan指出的問題,並調整了代碼,使其對未來的讀者更清晰。 查看:安德斯K. &邁克爾J的答案下面爲更有說服力的解決方案。 #include <iostream> /// \class HardwareRe

    3熱度

    1回答

    此代碼適用於Microchip的PIC32MX微處理器。他們的編譯器基本上是GCC 3.4。 我傾向於使用GCC的__packed__ attribute將位域打包到一個聯合體中,稍後將它們檢索爲unsigned char(即,類型雙引號)以通過SPI或I2C發送。這一行爲全部由我的實現定義,並且完美地工作。我更喜歡這個到一百行左右的掩碼和移位:) 我的問題是:在下面的代碼中是否有__packed

    0熱度

    1回答

    我正在努力與位掩碼(或是位域?)。我不知道如何去做。 我想創建一個DirectoryFilterIterator,它接受要過濾的標誌。我想我會使用這些位爲: const DIR_NO_DOT = 1; const DOT = 2; const DIR = 3; const FILE = 4; 因爲DOT也被認爲是DIR我希望能夠這兩個也來區分。如果我是正確的我覺得這樣的事情應該有可

    4熱度

    3回答

    使用整數作爲位域作爲一個項目,我有一個數字0和3之間的字符串的一部分,例如: 2030000000000000000030000000000000000003333212111221121301 我想通過一個URL來傳遞這個字符串,所以我想我可以嘗試使用一個位域,因爲每個數字只使用最多2位。我寫了下面的功能在我的課這樣的字符串轉換爲和用作位字段的數據整數數組: makeBuildBitfield:

    1熱度

    1回答

    這個優化問題一直困擾着我最後一天。 在我的程序中(一個簡單的roguelike遊戲),我使用按位標誌來存儲地圖對象的屬性,例如它們是否固定,或者是否渲染。不過,我可以用多態來完成這件事,以返回適當的值。 我的問題是,在鏈表循環中使用時,其中一種方式顯着快於還是慢於另一種方式?另外,比另一個更好的做法是什麼? 的代碼的一個例子: XMapObject *List = ListStart; whi

    8熱度

    5回答

    我正在設計一個User表在我的數據庫中。我有大約30個左右的選項,可以是「允許」或「不允許」的每個用戶。 我的問題是我應該將它們存儲爲30 bit列,還是應該使用單個int列來存儲它們並解析出我的應用程序中的每一位? 此外,我們的數據庫是SQL Server 2008和2005(視環境而定)