1.二进制中的1
1.lowbit函数
#include<bits/stdc++.h>
using namespace std;
int lowbit(int x)//10————1010 lowbit(10)=10=2
{
return x&-x;
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
int x,res=0;
cin>>x;
while(x)x=x-lowbit(x),res++;//lowbit(10)=2;lowbit(8)=1000=8
printf("%d ",res);//8=10-lowbit(10)=10-[10]=8 0=8-lowbit(8)=8-[1000]
}
}
2.bitset应用
#include<bits/stdc++.h>
using namespace std;
int lowbit(int x)//10————1010 lowbit(10)=10=2
{
return x&-x;
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
bitset<1000> x;
scanf("%d",&x);
int b=x.count();
printf("%d ",b);
}
}
=======================================================
数字如何用二进制表示
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n=10;
for(int i=3;i>=0;i--)
{
printf("%d",n>>i&1);
}
return 0;
}
//输出1010