题目描述:
给定一个十进制数n,求它的二进制表示是有几个1.
方法:
可以每次将 n 和 n -1 进行 & 运算并将结果赋予 n,并记录运算次数。直到 n = 0 为止。
include <iostream>
using namespace std;
int numOfOne(int n);
int main()
{
int array[3] = {258, 369, 147};
for(int i = 0; i < 3; i++)
{
cout << "array[" << i << "] = " << array[i] << ", numOfOne = " << numOfOne(array[i]) << endl;
}
return 0;
}
int numOfOne(int n)
{
int count = 0;
while(n)
{
count++;
n = n & (n - 1);
}
return count;
}