这回你的任务很简单,就是简单的数数,不过是在二进制下计算哦,计算一个十进制数的二进制包含多少个1.
如3的二进制是11,则包含2个1,2的二进制是10,则包含1个1
#include<iostream>
int count(int n){
int count=0;
int result;
int i=0;
while(i<32){
result=1&n;/// 用1与n进行按位相与,得到数字n二进制最低位的值,会自动将n转为二进制,不管n原进制
count+=result;
i++;
n=n>>1;//右移1位
}
return count;
}
int main(){
int n;
while(cin>>n)
cout<<count(n)<<endl;
return 0;
}