16进制转10进制代码(c++)
时间: 2024-02-04 19:09:35 浏览: 209
以下是C++实现16进制转10进制的代码示例:
```cpp
#include <iostream>
#include <string>
#include <cmath>
int hexToDecimal(std::string hex) {
int decimal = 0;
int power = 0;
// 从右到左遍历十六进制字符串
for (int i = hex.length() - 1; i >= 0; i--) {
// 将十六进制字符转换为对应的十进制数值
int digit;
if (hex[i] >= '0' && hex[i] <= '9') {
digit = hex[i] - '0';
} else if (hex[i] >= 'A' && hex[i] <= 'F') {
digit = hex[i] - 'A' + 10;
} else if (hex[i] >= 'a' && hex[i] <= 'f') {
digit = hex[i] - 'a' + 10;
} else {
// 非法的十六进制字符
return -1;
}
// 将每个十六进制位的值乘以16的幂,然后累加得到十进制值
decimal += digit * pow(16, power);
power++;
}
return decimal;
}
int main() {
std::string hex;
std::cout << "请输入一个十六进制数:";
std::cin >> hex;
int decimal = hexToDecimal(hex);
if (decimal == -1) {
std::cout << "输入的十六进制数不合法!" << std::endl;
} else {
std::cout << "转换后的十进制数为:" << decimal << std::endl;
}
return 0;
}
```
阅读全文