位运算操作
思想
-
判读一个二进制数第k位是0还是1 n » k & 1
-
lowbit操作 返回二进制数最后一位1所代表的数 res = x & (-x)
特点
#include <iostream>
#include <algorithm>
using namespace std;
int lowbit(int x)
{
return x & (-x);
}
int main()
{
int n;
cin >> n;
while (n --)
{
int x;
cin >> x;
int res = 0;
while (x) x - lowbit(x), res++;
cout << res << endl;
}
return 0;
}