如何使用 <bitset> 库将二进制转换为十进制?

How to convert binary into decimal using <bitset> library?

我使用这个简单的代码将十进制转换为二进制:

#include <iostream>
#include <windows.h>
#include <bitset>
using namespace std;

int main(int argc, char const *argv[]){

    unsigned int n;
    cout << "# Decimal:  "; cin >> n; cout << endl;
    bitset<16>binary(n);
    cout << endl << "# Binary:  " << binary << endl;

    system("Pause"); return 0;
}

如何将"binary"转换成十进制数并赋值给其他变量?

n 不是 "a decimal"。根据 IOStreams 使用的默认输出表示,我认为您对数字是什么有误解。他们是数字。不是十进制字符串、二进制字符串、十六进制字符串、八进制字符串、base-64 字符串或任何类型的字符串。但是 numbers.

您选择在输出中表示它们的方式与它们在内部存储的方式完全正交(实际上是 base-2 而不是十进制),因此这些 "conversions" 您很可能正在尝试做的是不合适的。

但是,如果您希望从 std::bitset 实例中提取整数,您可以使用 the to_ulong() member function

养成使用文档的习惯。