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

时间:2015-03-15 12:37:43

标签: c++ binary

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

#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;
}

如何将“二进制”转换为十进制并将值赋给其他变量?

1 个答案:

答案 0 :(得分:2)

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

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

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

养成使用文档的习惯。