1. 程式人生 > >c/c++ 求一個整數轉換為二進制數時中‘1’的個數

c/c++ 求一個整數轉換為二進制數時中‘1’的個數

urn col class 位與 個數 運算 位運算 題目 數字

求一個正整數轉換為二進制數時中‘1’的個數

分析:這道題目就是很簡單的位運算,我們可以把這個整數和1進行&操作(就是二進制數中的最低位與1進行&),然後將這個整數進行右移處理,將下個位置的數字移到最低位;反復如此操作直到該數變為0。

 1 int NumOf_one(int k)
 2 {
 3       int count_1 = 0;
 4       while(k)
 5       {
 6             if(k & 1)
 7                   count_1++;
 8             k >>= 1;
 9
} 10 return count_1; 11 }

c/c++ 求一個整數轉換為二進制數時中‘1’的個數