摘自 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++; } 方法三: 平行法

评论