1. 程式人生 > >劍指offer____二進位制中1的個數

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

輸入一個整數,輸出該數二進位制表示中1的個數。其中負數用補碼錶示。

class Solution {
public:
     int  NumberOf1(int n) {
         int length = 31;
         int count = 0;
         while (n)
	    {
          n = n&(n - 1);    //較為高效的方法,有幾個1就迴圈幾次
          count++;
        } 
      /*
         while(length >= 0)
         {
             if(n&(1 << length))
             {
                 count++;
             }
             length--;
         }
         */
         return count;
     }
};