华为机试 求int型数据在内存中存储时1的个数

题目描述

输入一个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 ;
}
 
上一篇:Oracle RAC:使用 NFS 共享存储时的 mount 选项 总结


下一篇:leetcode-70.爬楼梯