在C++中实现十六进制到十进制的递归转换可以通过以下步骤完成:
以下是一个示例代码:
#include <iostream>
#include <string>
using namespace std;
int hexToDec(string hexStr) {
if (hexStr.empty()) {
return 0;
}
char lastChar = hexStr.back();
hexStr.pop_back();
int lastDigit;
if (lastChar >= '0' && lastChar <= '9') {
lastDigit = lastChar - '0';
} else if (lastChar >= 'A' && lastChar <= 'F') {
lastDigit = lastChar - 'A' + 10;
} else if (lastChar >= 'a' && lastChar <= 'f') {
lastDigit = lastChar - 'a' + 10;
} else {
// 非法字符处理,这里可以根据实际需求进行修改
return hexToDec(hexStr);
}
return hexToDec(hexStr) * 16 + lastDigit;
}
int main() {
string hexStr = "1A";
int decNum = hexToDec(hexStr);
cout << "Hexadecimal: " << hexStr << endl;
cout << "Decimal: " << decNum << endl;
return 0;
}
在上述示例代码中,我们定义了一个hexToDec函数来实现递归转换。在主函数中,我们传入一个十六进制字符串"1A"进行转换,并输出转换后的十进制结果。
请注意,这只是一个简单的示例代码,仅用于演示递归转换的基本思路。在实际应用中,可能需要考虑更多的错误处理和边界情况。
领取专属 10元无门槛券
手把手带您无忧上云