0

我试图使用 C++ 中的输出流操纵器以二进制格式打印整数,但我没有成功。我尝试使用以下代码来操作基础。

#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
    int binary, gray;
    cin >> binary;
    cout << std::setbase(2) << (binary >> 1);
} 

但我猜这个操纵器只支持十进制、十六进制和八进制。有什么方法可以使用iomanip标题中的操纵器以二进制格式打印整数?

4

3 回答 3

0

使用位集,

cout << bitset<16>(10).toString() << endl;
于 2013-07-20T14:13:03.530 回答
0

std::setbase仅支持 8、10 或 16 的基数。std::bitset<N>但是,您可以使用自己打印出二进制表示:

#include <bitset>

int main()
{
    std::cout << std::bitset<16>(0x1F); // 0000 0000 0001 1111
}
于 2013-07-20T14:16:26.670 回答
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(); 

给出相同的

于 2013-07-20T14:21:30.707 回答