题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。
思路:一个整数减去1,再和原整数做与运算,会把该整数最右边一个1变成0。
#include <exception>
#include <iostream>
using namespace std;
int numberof1(int n) {
int count = 0;
while (n) {
++count;
n &= (n - 1);
}
return count;
}
int main() {
int n = 0;
cout << n << endl;
int result = numberof1(n);
cout << result << endl;
return 0;
}