查詢二進位制中1的個數 位運算

2022-07-13 18:42:14 字數 786 閱讀 7022

1、常見位運算符號

2、常用位運算技巧

3、輸入乙個數求該數的二進位制中1的個數

設定乙個迴圈,迴圈32次(因為int型長度是32位,如果long型就迴圈64,類推),每次讓1左移一位,然後和輸入的數進行與運算(和1進行與運算,結果取決於輸入數的二進位制位,是1結果就是1,0結果就是0),再比較

//

從後往前移動1逐個比對

public

static

int doafter(int

num)

}return

count;

}

//

從前往後》逐個比對

public

static

int dofront(int

num)

}return

count;

}

(x-1)&x的作用就是消除尾部的1

01010111(x)

& 01010110 (x-1)

------------

01010110

//

利用消除1的操作進行統計

public

static

int remove1(int

num)

return

count;

}

二進位制中1的個數 (位運算)

題目描述 輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。知識點 1.左移運算子 1 格式 value num num 指定要移動的位數。2 運算規則 按二進位制形式把所有的數字向左移動對應的位數,高位移出 捨棄 低位的空位補零。如果移動的位數超過了該型別的最大位數,那麼編譯器會對...

二進位制中1的個數 位運算

給定乙個長度為n的數列,請你求出數列中每個數的二進位制表示中1的個數。輸入格式 第一行包含整數n。第二行包含n個整數,表示整個數列。輸出格式 共一行,包含n個整數,其中的第 i 個數表示數列中的第 i 個數的二進位制表示中1的個數。資料範圍 1 n 100000,0 數列中元素的值 109 輸入樣例...

二進位制中1的個數(位運算n n 1 )

題目描述 輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。如果乙個整數不為0,那麼這個整數至少有一位是1。如果我們把這個整數減1,那麼原來處在整數最右邊的1就會變為0,原來在1後面的所有的0都會變成1 如果最右邊的1後面還有0的話 其餘所有位將不會受到影響。舉個例子 乙個二進位制數...