#include<cstdio>
#include<iostream>
using namespace std;
int NumberOf1(int n){//返回二进制一的个数 注意类型
int count=0;
unsigned int flag=1;//flag从1开始 每次循环左移一位 与n做&运算 判断该位是否为1
while(flag<=n){ //flag大于n 退出循环
if(n&flag)
count++;
flag=flag<<1;
}
return count;
}
int main(){
for(int i=0;i<15;i++)
cout<<i<<" "<<NumberOf1(i)<<endl;
system("pause");
return 0;
}
#include<cstdio>
#include<iostream>
using namespace std;
int bitcount(int x){
return x==0?0:bitcount(x/2)+(x&1);//x&1加括号
}
int main(){
cout<<bitcount(3);
system("pause");
return 0;
}