劍指Offer之二進位制中1的個數

2021-06-19 02:26:51 字數 1121 閱讀 2481

題目描述:輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。

輸入:輸入可能包含多個測試樣例。

對於每個輸入檔案,第一行輸入乙個整數t,代表測試樣例的數量。對於每個測試樣例輸入為乙個整數。

。n保證是int範圍內的乙個整數。

輸出:對應每個測試案例,

輸出乙個整數,代表輸入的那個數中1的個數。

樣例輸入:

345

-1

樣例輸出:

1

232

【解析】:

* 日期:2013-11-18

* 題號: 題目1513:二進位制中1的個數

* 結果:ac

* 總結:

**********************************/

#include#include#includeusing namespace std;

int numberofone(int n)

flag = flag << 1;

}return count;

}int main()

} return 0;

}另一種方法:

劍指offer之二進位制中1的個數

思路一 判斷整數二進位制表示中最後一位是不是1,然後將整數右移一位。重複這個步驟,直到整數變為零。1 如何判斷最後一位是不是1?將整數與1做 運算,結果為1,是。結果為0,不是。2 右移一位和將整數除以2在數學上等價,可以相互替換嗎?不能,除法的效率要比移位運算低得多。實際程式設計中盡可能用移位運算...

劍指offer十一之二進位制中1的個數

一 題目 輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。二 思路 方法一 用1 1自身左移運算,其實後來就不是1了 和n的每位進行位與,來判斷1的個數 方法二 把乙個整數減去1,再和原整數做與運算,會把該整數最右邊乙個1變成0.那麼乙個整數的二進位制有多少個1,就可以進行多少次這...

劍指Offer 二進位制中1的個數

題目 請實現乙個函式,輸入乙個整數,輸出該數二進位制表示中1的個數。例如把9表示成二進位制是1001,有2位是1。因此如果輸入9,該函式輸出2。1 可能引起死迴圈的解法 先判斷整數二進位制表示中最右邊一位是不是1。接著把輸入的整數右移一位,此時原來處於從右邊數起的第二位被移到最右邊了,再判斷最右邊的...