题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。
思路:运用”位运算“
代码:
#include<iostream>
using namespace std;
int NumberOf1(int n)
{
int count=0;
unsigned int flag=1;
while(flag)
{
if(n&flag)
count++;
flag=flag<<1;
}
return count;
}
int main()
{
int n;
cout<<"please enter a int:";
cin>>n;
cout<<n<<" has "<<NumberOf1(n)<<" one";
cout<<endl;
return 0;
}
reference:剑指Offer(何海涛著)
原文:http://blog.csdn.net/pyz_tech/article/details/23659935