题目
a >> k & 1
可以取第该数字的二进制第k位的值
比如 10 >> 2 & 1
10的二进制为 1010
,右移2位为 0010
,&1
得0000
,也就是0,第二位也是0
参考答案
STL 做法:
#include <iostream>
using namespace std;
int main(void) {
int n,x;
cin >> n;
for(int i = 0;i<n;i++){
cin >> x;
cout << __builtin_popcount(x) << " ";
}
}