题解 | #二进制中1的个数#

二进制中1的个数

http://www.nowcoder.com/practice/8ee967e43c2c4ec193b040ea7fbb10b8

class Solution {
public:
     int  NumberOf1(int n) {
         
         /*
         //移位法
         int val=n; // input data
         int ans = 0;
         int mark = 0x01;
         while (mark != 0)
         {
             if (mark & val)
                 ++ans;
             mark <<= 1;
          }
         return ans;
         */
         
         
         //技巧移位法
         int ans=0;
         while(n!=0)
         {
             if(n)
                 ans++;
             n=n&(n-1);
         }
         return ans;
         
         /*暴力法,运用数组存储二进制位
         int loc[33]={0};
         if(n>=0)
         {
             int i=31;
              while(n>0)
              {
                  loc[i--]=n%2;
                  n/=2;
              }
         }
         else
         {
             loc[0]=1;
             int n1=abs(n);
             int i=31;
             while(n1>0)
             {
                 loc[i--]=n1%2;
                 n1/=2;
             }
             for(int j=1;j<=31;j++)
             {
                 if(loc[j]==1)
                     loc[j]=0;
                 else
                     loc[j]=1;
             }
             for(int j=31;j>=1;j--)
             {
                 if(loc[31]==0)
                 {
                     loc[31]=1;
                     break;
                 }
                 if(loc[j]==0)
                 {
                     loc[j]=1;
                     int k=j+1;
                     while(k<=31)
                     {
                         loc[k]=0;
                         k++;
                     }
                     break;
                 }
                 
                 if(j==1&&loc[j]==1)
                     for(int k=1;k<=31;k++)
                         loc[k]=0;
                         
                     
             }
         }
         int count=0;
         for(int i=0;i<=31;i++)
             if(loc[i]==1)
                 count++;
         return count;
         */
         
     }

};
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务