一个我认为简单的方法; #include<stdio.h> int main() { int t; scanf("%d",&t); while(t--) { int n,sum=0; scanf("%d",&n); while(n) { if(n&1)//看二进制最右边的那一位是不是1; sum++; n/=2; } printf("%d\n",sum); } return 0; }