C ++:用于转换的库,例如:二进制 -> 十进制 |二进制 -> 十六进制等
Posted
技术标签:
【中文标题】C ++:用于转换的库,例如:二进制 -> 十进制 |二进制 -> 十六进制等【英文标题】:C ++: library for conversion, Ex: binary -> decimal | binary -> hexadecimal etc 【发布时间】:2021-11-18 07:32:05 【问题描述】:对于我的项目,我需要转换一些数字,例如:
-
二进制 --> 十进制
十进制-->二进制
二进制 --> 十六进制
十六进制 --> 二进制
等等……
我尝试创建一些函数,但它的操作时间很长,我立即需要一个转换器。
有人知道这样做的图书馆,那么,我在哪里可以找到它。
【问题讨论】:
这能回答你的问题吗? How can I convert hexadecimal numbers to binary in C++? 不清楚是否需要转换数字或字符串。 【参考方案1】:您可以使用 stoi 函数将二进制/十六进制/八进制格式的值转换为十进制数:
#include <iostream>
#include <string>
int main()
std::string hex("BAF");
std::string bin("1111");
std::string octal("734");
std::cout << "Hex: " << hex << " => " << std::stoi(hex, 0, 16) << std::endl;
std::cout << "Bin: " << bin << " => " << std::stoi(bin, 0, 2) << std::endl;
std::cout << "Octal: " << octal << " => " << std::stoi(octal, 0, 8)
<< std::endl;
对于其他转换(从十进制到二进制/十六进制/八进制),您应该实现自己的函数。您可以使用 std::bitset 来帮助您。
【讨论】:
好的,谢谢你,你很有帮助 好的,但是有没有一种方法可以将十六进制转换为二进制并反过来【参考方案2】:涉及字符串和数字的一些步骤示例
#include <iostream>
#include <bitset>
#include <cassert>
#include <string>
#include <sstream>
int main()
auto binary = std::stoi("0110", nullptr, 2);
auto hex = std::stoi("f", nullptr, 16);
assert(binary == 6);
assert(hex == 15);
std::stringstream os;
os << std::hex << hex; // todo add formatters.
std::cout << os.str() << std::endl;
std::bitset<4> bits binary ;
std::cout << bits.to_string() << std::endl;
return 0;
【讨论】:
好的,谢谢你,你很有帮助 好的,但是有没有一种方法可以将十六进制转换为二进制并反过来 你的意思是直接从字符串到字符串?不,但您可以通过此处答案中的代码 sn-ps 轻松为自己构建它们以上是关于C ++:用于转换的库,例如:二进制 -> 十进制 |二进制 -> 十六进制等的主要内容,如果未能解决你的问题,请参考以下文章