C++ 数值进制转换库:二进制、八进制、十六进制转换
可以使用 C++ 标准库中的 std::bitset 类来进行二进制转换,同时可以使用 std::stringstream 类来进行其他进制的转换。
以下是一个将十进制数转换为任意进制的示例代码:
#include <bitset>
#include <sstream>
std::string toBase(int num, int base) {
std::stringstream ss;
while (num > 0) {
int r = num % base;
ss << (char)(r < 10 ? r + '0' : r - 10 + 'a');
num /= base;
}
std::string result = ss.str();
std::reverse(result.begin(), result.end());
return result;
}
int main() {
int num = 42;
// 转换为二进制
std::bitset<8> b(num);
std::cout << b.to_string() << std::endl;
// 转换为八进制
std::string o = toBase(num, 8);
std::cout << o << std::endl;
// 转换为十六进制
std::string h = toBase(num, 16);
std::cout << h << std::endl;
return 0;
}
输出结果为:
00101010
52
2a
其中 toBase 函数用于将十进制数转换为任意进制数,std::bitset 类用于将十进制数转换为二进制字符串。
原文地址: https://www.cveoy.top/t/topic/npup 著作权归作者所有。请勿转载和采集!