- 最常见的方法
int Fun1(int N)
{
int num=0;
for(int i=0;i<8;i++)
{
if(N%2==1)
num++;
N=N/2;
}
return num;
}
2.改进的位运算
int Fun2(int N)
{
int num=0;
for(int i=0;i<8;i++)
{
num+=(N>>i)&0x01;
}
return num;
}
完整代码实现如下:
#include <iostream>
using namespace std;
int Fun1(int N)
{
int num=0;
for(int i=0;i<8;i++)
{
if(N%2==1)
num++;
N=N/2;
}
return num;
}
int Fun2(int N)
{
int num=0;
for(int i=0;i<8;i++)
{
num+=(N>>i)&0x01;
}
return num;
}
int main()
{
cout<<"输入一个0-255的数字"<<endl;
int N;
cin>>N;
cout<<Fun1(N)<<endl;
cout<<Fun2(N);
return 0;
}