#include <iostream>
using namespace std;
int a[100010];
int ol(int x){
return x&(-x);
}
int main(){
int n,x,res=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>x;
res=0;
while(x>0){
x=x-ol(x);
res++;
}
cout<<res<<" ";
}
return 0;
}
OL操作:
这样的话就满足了每次ol数将每个数的每次数的最后一个1和后面的0的二进制减去
就比如:10001000 - 0000 1000
这样就达到了计算每个数二进制的一的目的