bits

    -3熱度

    1回答

    在不使用for或while循環且不使用大於0xFF的常量的情況下,用C計算32位整數x中1的個數的最佳方法是什麼? 我想到的是將x 24向右移動並計算移位整數中的多少個1,並將其存儲在變量計數中。然後,將x 16向右移位,並按移位整數中的1的數量遞增計數,依此類推。 那麼,有更好的解決方案的任何想法?

    -4熱度

    1回答

    我有一個兩字節的字節數組,我用它作爲計數器。我需要一點一點地增加它,如: 0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 0000 0010 0000 0000 0000 0011 . . . 0000 0000 1111 1111 0000 0001 1111 1111 0000 0010 1111 1111 0000 00

    0熱度

    1回答

    我通過破譯編碼和麪試的位操作技術之一是如下工作: 從我到0(含)清除所有位,我們採取一個序列全部爲1(即-1),並將其左移i + 1位。這給了我們1個序列(最高有效位),然後是0個位。 int clearBitsIthrough0(int num, int i){ int mask = (-1 << (i + 1)); return num & mask; } 如何爲-1

    1熱度

    2回答

    我是C新手,並通過位操作獲得了一些練習。 假設我有n位二進制補碼數使得n> 0和n < 31.如果我知道的n提前大小,我怎麼能簽字擴展到32位? 如果n爲16位, int32_t extendMe(int16_t n) { return (int32_t) n; } 假設我有數據的定義。 假設我有一個我想簽名的n位值可以擴展到32位,我該怎麼做到這一點? 謝謝。

    1熱度

    2回答

    它被定義爲UInt是無符號整數的類型。但在這種情況下,MSB似乎仍然是一個標誌。例如,最相關的質量保證是Chisel UInt negative value error,其中找出瞭解決方法,但沒有解決問題。你能否讓我瞭解'爲什麼'? 的UInt似乎chisel3/chiselFrontend/src目錄/主/斯卡拉/ chisel3 /核心/ Bits.scala,但我不明白的細節進行定義。 UI

    2熱度

    3回答

    我想知道如何刪除位值中的位。 我收到一個10位的值(位0到位9),我必須發送一個忽略接收值的位0,位2,位4和位6的變量,那麼我的變量將是:位987531。我能怎麼做 ?我聽說過屏蔽位我真的不知道如何使用它,即使我知道面具將0x55的 謝謝你幫我

    -1熱度

    1回答

    無符號6位的範圍從0到63,你可以到達那裏,因爲2^6 = 64.但是不是六位二進制字符串只能達到2^5?第一位是2^0沒有...?我在哪裏錯了?我知道這是一個很簡單的問題,請幫助我瞭解,因爲我不知道很多

    0熱度

    1回答

    我想弄清楚是否有一種簡單的方法來一次修改8051端口的幾個位。 我會重新解釋我的困境更具體的風格。 我的應用程序有端口2分爲兩個功能。我們稱他們爲FA和FB。 FA依賴於低三位的輸出值,而FB依賴於剩餘的5位,但它們可以是I/O。 因爲FB中的一位是控制時鐘的輸出位,所以當我修改FA時,我不想修改FB的任何部分,反之亦然。 以下種類的命令不會爲我工作: mov P2,#07h mov P2,#8

    0熱度

    1回答

    我知道如何做位移,但我的價值似乎跑了邊緣,我失去了原來的價值,試圖保留8位的回報。

    0熱度

    2回答

    我有一個非常困難的時刻了解BitSet.valueOf(字節陣列) 我有以下代碼:以上 byte[] a = new byte[]{(byte) 0x2D, (byte) 0x04}; //binary => 0010 1101 0000 0100 BitSet bs = BitSet.valueOf(a); System.out.println(bs); 代碼給我的{0, 2, 3,