1. 程式人生 > >1的個數 【位運算】

1的個數 【位運算】

問題描述

給定一個十進位制整數N,求其對應2進位制數中1的個數

Input

第一個整數表示有N組測試資料,其後N行是對應的測試資料,每行為一個整數。

Output

N行,每行輸出對應一個輸入。

Sample Input

4
2
100
1000
66

Sample Output

1
3
6
2

AC的C++程式碼:

//適用非負整數
#include<iostream>

using namespace std;

int main()
{
	int n;
	scanf("%d",&n);
	while(n--){
		int x,ans=0;
		scanf("%d",&x);
		while(x>0){
			if(x&1)
			  ans++;
			x>>=1;
		}
		printf("%d\n",ans);
	}
	return 0;
}