题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制数是1001,有2位是1.因此如果输入9,该函数输出2。
#include <iostream>
using namespace std;
int NumberOf1(int n)
{
int num = 0;
while(n)
{
++ num;
n = (n - 1) & n;
}
return num;
}
int main()
{
cout << NumberOf1(0) << endl;
cout << NumberOf1(1) << endl;
cout << NumberOf1(1024) << endl;
cout << NumberOf1(1023) << endl;
cout << NumberOf1(-1023) << endl;
return 0;
}