题目描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)
输出描述:
这个数转换成2进制后,输出1的个数
输入
5
输出
2
普通运算方法
#include<iostream> using namespace std; int main(){
int num,count=;
cin>>num;
while(num){
if(num%==)
num/=;
else{
count++;
num/=;
}
}
cout<<count;
return ;
}
运用右移运算符
00000001 //执行value>>=1后结果为
11111111 11111111 11111111 11111111
0000000 00000000 00000000 00000000(1) //运用value&1==1
//最低位为1时,value&1=1;
//最低位为0时,value&1=0
#include<iostream> using namespace std; int main()
{
int value,count=;
cin>>value;
while(value)
{
if(value&)
count++;
value>>=;
}
cout<<count;
return ;
}