1. 程式人生 > >劍指offer(11)二進位制中1的個數

劍指offer(11)二進位制中1的個數

題目描述
輸入一個整數,輸出該數二進位制表示中1的個數。其中負數用補碼錶示。
解題思路
一個數,自身和自身減一與運算,會將右邊最後一個不為1的變為0,一直迴圈,直到變為0;

class Solution {
public:
     int  NumberOf1(int n) {
         int count=0;
         while(n!=0)
         {
             count++;
             n=n&(n-1);
         }
         return count;
     }
};