28. 求整数的二进制中1个个数

面试宝典上的题目,是位运算中的与(&)的体现

代码:

/*
     考察整数2进制数的1的个数
     面试宝典问题,用x | (x-1)??
 */

#include<iostream>
using namespace std;


int count(int n)
{
    int count=0;

    while(n!=0)
    {
        n=n & (n-1);
        count++;
    }

    return count;
}

int main(void)
{
    int n;

    cin>>n;
    cout<<count(n)<<endl;

    return 0;
}

 

posted on 2013-08-16 16:10  紫金树下  阅读(145)  评论(0编辑  收藏  举报