看一个数的二进制数有多少位,多少个1,多少个0
作者:
Dessa
,
2024-04-14 16:35:52
,
所有人可见
,
阅读 2
#include <iostream>
//#include <bits/stdc++.h>
#include <string>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <cstdio>
#include <set>
#include <map>
#include <vector>
#include <deque>
#include <iomanip>
#include <queue>
#include <utility>
#define x first
#define y second
using namespace std;
typedef long long ll;
typedef pair<int, int> PII;
#define endl '\n'
#define buff ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);
int a[100010], b[100010];
void solve()
{
int n;
cin>>n;
int ans0=0,ans1=0;//0的个数,1的个数
for(int i=sizeof(n)*8-1;i>=0;i--)//sizeof(n)*8就是有多少位
{
if(n&1<<i) ans1++;//1的个数
else ans0++;//0的个数
}
cout<<ans1<<" ";
cout<<ans0<<'\n';
}
int main()
{
ios::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL);
int t = 1;
cin >> t;
while (t--)
{
solve();
}
return 0;
}