有些程序要处理二进制问题,每个位只包含0和1;标准库里面有个bitset类简化了 处理,使用方便
输入一个整数n
输出n的二进制,保证多少位,高位不够的话补0
#include<iostream>
#include<stdio.h>
#include<bitset>
#include<algorithm>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
bitset<16> a(n); //bitset的声明,把10进制的数转化为二进制,位数为16位
bitset<32> b(n);
cout<<a<<endl; //bitset的输出
cout<<b<<endl;
a.flip(); //把二进制按位取反
cout<<a<<endl;
//也可以转化为string类型的输出
string t,s;
t=b.to_string();
cout<<t<<endl;
//还可以把二进制的高位转化为低位,低位转化为高位
s=t;
reverse(s.begin(),s.end());
cout<<s<<endl;
}
return 0;
}