bitmask

    -1熱度

    1回答

    在C中,我試圖將一個整數地址值分隔到具有4組直接映射高速緩存中的標記位和集索引位。我這樣做是爲了讓我可以比較正確的緩存中正確的標記。這裏例如地址參數: 組索引比特s =數2 偏移的比特數B = 3 的地址位的總數M = 8 而在我的例子地址整數是40 - INT地址= 40。 40在二進制是00101000 設定指標應該是01 = 1 標籤應該是001 = 1 而不是爲我得到2標籤和組索引爲8,必

    1熱度

    1回答

    我正在Java中開發類似蠕蟲的遊戲(具有可破壞的地形和所有內容)。 一切都沒有好,直到我試圖更新地形圖像使用位掩碼。 讓我詳細解釋這個過程: 每當一個彈丸碰撞發生時我畫一個黑圈到我 地形遮光罩(有黑色透明和白色不透明像素)。 public void drawExplosion(Vector2 position,BufferedImage explosionImage){ Graphics

    1熱度

    1回答

    我在網上回答了一些編程問題,這個問題讓我感興趣。問題是定義如下: 這個代碼打印出所有字符串的字典順序排列。它有什麼問題。通過修改或添加一行來查找並修復它! 輸入: 輸入由含有的小寫字符的字符串與在之間沒有空格的單一生產線。其長度最多爲7個字符,其字符按字典順序排序。 輸出: 印刷一個在每行中的字符串,字典順序列出的所有排列。 def permutations(): global running

    1熱度

    2回答

    我確信這已被問到,但我無法理解如何屏蔽8位寄存器。 假設我有一個8位寄存器。這些位通過PORTD設置。我想改變除2個LSB以外的所有位。 PORTD |= 0b111011XX; XX是我不想改變的2個LSB。 我該怎麼做?

    0熱度

    2回答

    我正在嘗試創建一個48位整數值。我知道可能使用char數組或結構體,但我希望能夠進行位掩碼/操作,但我不確定如何完成此操作。 目前該程序使用16位uint,我需要將其更改爲48.它是一個字節碼解釋器,我想將內存尋址擴展到4GB。我只能使用64位,但這會浪費很多空間。 下面是代碼的示例: unsigned int program[] = { 0x1064, 0x11C8, 0x2201, 0x000

    0熱度

    4回答

    我正在尋找一種方法來屏蔽掉(設置爲'0')Python中整數的最低四位,當我不知道數字的總長度。如果我知道整數的長度事先我可以只設置掩碼爲0xFF的其餘部分,例如,如果該整數將永遠是32位長,我可以使用: number &= 0xfffffff0 但是,如果我試圖用那麼64位數字就會掩蓋位32-63。我想到的兩件事是讓掩碼真的很長(例如0xffffffffffffffffff0)或將位數作爲

    0熱度

    2回答

    我看到在proto_register_field_array(const int parent, hf_register_info *hf, const int num_records);中使用的header_field中的位掩碼字段是guint32,因此我不能使用64位掩碼。無論如何,我可以去嗎? 具體來說,我有一個60位的字段,所以我想創建一個場FT_UINT64類型和位掩碼0xfffffff

    0熱度

    1回答

    我有一個程序,我的教授給我一個硬件,我想看看你們是否可以解釋我是如何工作的。注意:我不想讓你們給我答案;我想學習,所以如果你們能向我解釋這項工作是如何令人敬畏的,那麼我可以在我的主持下開始工作。 說明: 一個)unsigned setbits (unsigned x, int p, int n, unsigned y)其返回x與開始位置p處的n位(右調整)設置爲y的最右邊的n位,而使其他位不變。注

    1熱度

    1回答

    我一直在淘谷歌和堆棧溢出的問題的答案,我一直沒有能夠明確地找到它。 我該如何測試一個位掩碼,看看它是否只有一個標誌,並且只設置了一個標誌? I.E如果在掩碼內設置了其他標誌,它將返回false。 我知道我可以檢查是否面具有這個標誌。 (currentFlags & state) == state 我覺得檢查一個掩碼是否只有一個標記會複雜一點。我訪問過的每個站點都解釋了掩碼,有典型的添加/刪除/

    -1熱度

    1回答

    C中是否有內建函數返回32位整數中的第一位等於零? 我知道我可以使用檢查所有32位一個for循環: value <--- parameter (uint32_t) for (int i=0; i<32; i++){ uint32_t pos = 1 << i; if (pos^value) return i; // xor } return -1;