天天看點

劍指offer 面試題15:二進制中1的個數

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

分析:首先把輸入的數與 1做位 與  ,判斷n的最低位是否為1,而後将1右移,再與n做位與,判斷右數第二位是否為1。。。。。依次循環,最後判斷出共有多少個1。

class Solution {
public:
     int  NumberOf1(int n) 
     {
      int count=0;
      unsigned int flag = 1;
         while (flag)
         {
             if(n&flag)
             {
                 count++;
             }
             flag=flag<<1;
         }
         return count;
     }
};
           
c++

繼續閱讀