#include <algorithm>
#include <string>
std::string decimalToK(int num, int k) {
if (k < 2 || k > 16) return "Invalid"; // 进制范围校验[7](@ref)
if (num == 0) return "0"; // 特殊值处理[3](@ref)
const char digits[] = "0123456789ABCDEF"; // 字符映射表[7](@ref)
bool isNegative = num < 0;
num = abs(num);
std::string result;
while (num > 0) {
int remainder = num % k;
result += digits[remainder]; // 直接查表优化[7](@ref)
num /= k;
}
if (isNegative) result += '-';
std::reverse(result.begin(), result.end()); // 倒序修正[2](@ref)
return result;
}
#include <cctype>
int base_to_dec(const std::string& num, int base) {
if (base < 2 || base > 36) return -1;
int result = 0;
for (char c : num) {
int value = isdigit(c) ? c - '0' : toupper(c) - 'A' + 10;
if (value >= base) return -1; // 非法字符检测
result = result * base + value;
}
return result;
}
十进制转任意进制,任意进制转的十进制
最新推荐文章于 2025-12-04 22:20:49 发布
1695

被折叠的 条评论
为什么被折叠?



