如何使用 <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。
养成使用文档的习惯。
我使用这个简单的代码将十进制转换为二进制:
#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。
养成使用文档的习惯。