标签:编程之美
<span style="font-size:14px;">#include <iostream>
using namespace std;
int main(void)
{
    int n,m;
    m=0;
    cin>>n;
    while(n)
    {
        if(n%2)    //如果n不能整除2,说明当前n的末尾数为1
            m++;
        n>>=1;    //n右移1位,即n/2
    }
    cout<< m <<endl;
    return 0;
}</span><span style="font-size:14px;">#include <iostream>
using namespace std;
int main(void)
{
   //    使用位操作,1 和 二进制的最后一位进行 与(&) 运算
    int n,i,m;
    m=0;
    i=0x1;
    cin>>n;
    while(n)
    {
        m+=(n&i);
        n>>=1;
    }
    cout << m <<endl;
    return 0;
}</span><span style="font-size:14px;">#include <iostream>
using namespace std;
int main(void)
{  
    int n,m;
    m=0;
    cin>>n;
    while(n)
    {
        n&=(n-1);
        m++;
    }
    cout << m <<endl;
 
    return 0;
}</span>标签:编程之美
原文地址:http://blog.csdn.net/u011694809/article/details/46122895