C++ 二进制转十进制

4

我知道使用bitset库可以将十进制转换为二进制,但是是否也可以使用bitset库将二进制转换为十进制呢?或者必须手动完成呢?

bitset<8> bin_x(number);

你使用什么形式表示二进制数?你需要使用std::bitset还是可以使用字符串(在这种情况下,我建议使用std::strtol())? - user529758
只是一个普通的整数。例如 int x = 1111; 我该如何使用 bitset 库将二进制对应物“1111”输出为十进制数“15”? - ssj3goku878
2个回答

4
你可以这样做,但它应该是一个字符串。
std::bitset<8> bits("1111");
std::cout << bits.to_ulong() << std::endl;

你可以将整数转换为字符串,然后将其传递给 bitset 构造函数。 实例演示

好的,我在这里遇到了一个问题,我看到你需要在括号内加引号才能使其工作,但如果我像这样设置它,我该如何运行它?std::bitset<8> bits(BinaryNum); - ssj3goku878
1
如果 BinaryNum 是 char* 或者 string,那么一切都会正常工作。 - ForEveR

0

另一种简单的方法(不使用bitset库)是使用stoi

// #include <string>
std::string str = "-10010110001";
int dec = std::stoi(bin, nullptr, 2); // dec = -1201

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接