我试图使用C ++中的输出流操纵器以二进制格式打印整数,但我没有成功。 我尝试使用以下代码来操纵基础。
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int binary, gray;
cin >> binary;
cout << std::setbase(2) << (binary >> 1);
}
但我想这个操纵器只支持十进制,十六进制和八进制基数。
有没有什么办法可以使用iomanip
标题中的操纵符打印二进制格式的整数?
答案 0 :(得分:0)
使用bitset即
cout << bitset<16>(10).toString() << endl;
答案 1 :(得分:0)
std::setbase
仅支持8,10或16的基数。您可以使用std::bitset<N>
自行打印二进制表示:
#include <bitset>
int main()
{
std::cout << std::bitset<16>(0x1F); // 0000 0000 0001 1111
}
答案 2 :(得分:0)
#include <bitset>
#include<iostream>
int main(){
int i=13;
std::bitset<8> bit (i);
std::cout<<bit.to_string();
return 0;
}
结果:
00001101
cout<<bitset<8>(0xd).to_string();
给出相同的