天天看點

牛客網-二進制中1的個數一、題目二、思路三、代碼

一、題目

牛客網-二進制中1的個數一、題目二、思路三、代碼

二、思路

  • 對于整數,兩種方法

    – 1、取餘法

    将n取餘,統計為1的個數

    – 2、向右移位法

    将n&1,當不為0時,說明這個位是1;然後n>>1;向右移位,左邊補0;

  • 對于負數,向右移位,但是注意左邊是補1的,不是補0

三、代碼

class Solution {
public:
     int  NumberOf1(int n) {
         int pos=0;
         int Count=0;
         if(n==0)
         {
             return 0;
         }
         for(int i=0;i<32;++i)
         {
             if(n & 1!=0)
             {
                 Count++;
             }
             n >>=1;
          }
         return Count;
     }
};
           

繼續閱讀