我使用这个简单的代码将十进制转换为二进制:
#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;
}
如何将“二进制”转换为十进制并将值赋给其他变量?
答案 0 :(得分:2)
n
不是“小数”。根据IOStreams使用的默认输出表示,我认为您对数字有误解。他们是数字。不是十进制字符串,二进制字符串,十六进制字符串,八进制字符串,base-64字符串或任何类型的字符串。但数字。
您选择在输出中表示它们的方式与它们在内部存储的方式完全正交(实际上,基数为2而不是十进制),因此您很可能尝试这些“转换”做不合适。
但是,如果您希望从std::bitset
实例中提取整数,则可以使用the to_ulong()
member function执行此操作。
养成使用文档的习惯。