目录
牛客HJ62 查找输入整数二进制中1的个数
解析代码
本题是计算一个数二进制表示中1的个数,通过(n >> i) & 1可以获取第i位的二进制值,每次n右移一位,可以获取一位的二进制值,右移32次,n变成0,循环终止。
#include <iostream>
using namespace std;
int main()
{
int n = 0;
while (cin >> n)
{
int cnt = 0;
while (n != 0)
{
n &= (n - 1);
++cnt;
}
cout << cnt << endl;
}
return 0;
}