摘自 http://www.cnblogs.com/graphics/archive/2010/06/21/1752421.html
方法一: 普通法
int n,counter=0;
scanf("%d",&n);
while(n)
{
if(n&1==1)
counter++;
n>>=1;
}
精简化:
int n,counter;
for(counter=0;n;n>>=1)
{
counter+=n&1;
}
方法二:快速法
int n,counter=0;
while(n)
{
n&=(n-1);
counter++;
}
方法三: 平行法
评论