题目描述:
任意给定一个32位整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4
int countOneNum(int n)
{
if(n==0)
{
return 0;
}
int num=0;
while(n)
{
num++;
int m=n-1;
n=n&m;
}
return num;
}
原文:http://blog.csdn.net/richard_rufeng/article/details/19292493