高效统计整数中 1 的比特数

输入一个无符号整数,统计该整数中含1的比特数。 #includeint numbits(unsigned int n){int count = 0;whil

输入一个无符号整数,统计该整数中含1的比特数。

#include
int numbits(unsigned int n)
{int count = 0;while(n>0){n &= (n-1);//每次操作去掉n中最低位的1count++;}return count;
}
int main()
{unsigned int n;scanf("%d",&n);printf("%d\n",numbits(n));return 0;
}