bit-manipulation

    0熱度

    1回答

    我正試圖在java中查找一個數字的尾數零。 我從黑客的喜悅中得到了這段代碼。但無法理解它。 根據黑客的喜悅(第5-4節),這應該給出尾隨零的數量。 INT numOfTrailingZeros = 32 numOfLeadingZeros(〜(N &(N-1))) 我試過它給了我32 這是我在黑客的喜悅numOfLeading 0實施方法numOfLeadingZeros的參數是無符號整數。它在這

    0熱度

    1回答

    爲什麼按位不是不按預期切換位?見下面的例子: a = 5 print(bin(a)) b = ~a print(bin(b)) 這是輸出: 0b101 -0b110 的問題是,爲什麼從左邊第一位不反轉? 考慮到Python文檔說: 〜X返回x的補充 - 您可以通過切換各 1 0獲得數量和每個0爲1 編輯:你是說「〜」不是簡單切換位的操作符,而是兩個補碼的操作符? 如果是這樣,爲什麼

    -1熱度

    1回答

    我有一個位數組,我試圖轉換爲一個字節數組。但是我很難爲它制定正確的邏輯。 這是我的位數組數據: 1111 11111111 11111111 11111111 11101101 隨着最終結果: [0]: 00011010 //this is obviously wrong should be: 11101101 [1]: 11111111 [2]: 11111111 [3]: 11111

    0熱度

    2回答

    我有需要我通過2用C來劃分一個32位單精度浮點整數使用逐位運算(if語句和for循環也可以使用)的家庭作業。浮點的位表示爲無符號整數,因此我們可以使用按位運算符來修改它們。我的問題是,我很難理解分割過程中的位發生了什麼。我最初的計劃是簡單地將指數位向右移動1,同時保持符號和尾數位相同,但是這沒有奏效。例如,當我的函數被賦予由0x800000表示的位時,我的函數返回0x00000000,因爲右移指數

    -1熱度

    2回答

    我有一個USHORT陣列: ushort[] testArray = new ushort[]{1, 2, 3, 4, 5}; 我怎樣才能將其轉換爲位陣列。在上面的例子中,長度爲5 * 16位數組?提前致謝!

    0熱度

    1回答

    對於已知大小但大於64位的位掩碼,處理(即,執行所有按位操作)的最有效的數據結構是什麼? byte[]? BigInteger?還有其他的東西嗎? 需要是Java 7的兼容,並且要快(或至少一樣快,可以合理地預期,鑑於其大小)之類的東西 if(bitmask & 7 != 0){...} 和 bitmask1 |= bitmask2 等上。

    -2熱度

    2回答

    我正嘗試在C++中使用位數組數據結構。這是簡單的好奇心,但我應該怎麼解釋: uint64_t a = 1; uint64_t b = a << 1; cout << (a == (a << 64)) << endl; // get 1 cout << (a == (b << 63)) << endl; // get 0 似乎是一個< < x是環時x >= 64,但墊用零時x < 64。

    1熱度

    1回答

    我試圖做一個int數組,從雙數組中取雙打,通過轉換將數值截斷爲整數,然後使用按位運算來獲取整數的絕對值。下面是我到目前爲止有: int int_array[20]; int o; for(o = 0; o<20; o++){ int currentNum = (int) f_array[o]; //Now use bitwise operations

    1熱度

    2回答

    我對BitSet瞭如指掌。 BitSet數據結構是否存儲1和0? val b = BitSet(0, 2, 3) 表示存儲1位位置0,2和3? 如果是這樣,什麼是最大值。沒有。的位,32或64?

    0熱度

    2回答

    我有一個畫布,最多可以繪製16個矩形。 我收到來自服務器的這個二進制數:100101101(或301十進制)。 假裝,我想我的矩形關聯到這個二進制文件(每比特一個矩形),我需要隱藏的是0每個比特的每個矩形(或繪製一個矩形因爲這是1的每一位,只要你喜歡) 。 所以(如果我們看一下100101101)在我的畫布我會第一個矩形繪製,然後是一個空格,然後兩個矩形,然後另一個空間等 我抓我的頭了很多圍繞這一