c++ 16进制转10进制高精度
时间: 2024-04-19 21:22:11 浏览: 177
在C++中,可以使用字符串来表示高精度的16进制数,并将其转换为10进制数。下面是一个示例代码:
```cpp
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int hexToDecimal(string hex) {
int decimal = 0;
int power = 0;
// 从字符串的最后一位开始遍历
for (int i = hex.length() - 1; i >= 0; i--) {
// 将16进制字符转换为对应的数值
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 {
// 非法的16进制字符
cout << "非法的16进制字符" << endl;
return 0;
}
// 将每一位的数值乘以16的幂次方,并累加到结果中
decimal += digit * pow(16, power);
power++;
}
return decimal;
}
int main() {
string hexNumber;
cout << "请输入一个16进制数:";
cin >> hexNumber;
int decimalNumber = hexToDecimal(hexNumber);
cout << "转换为10进制数为:" << decimalNumber << endl;
return 0;
}
```
运行程序后,输入一个16进制数,程序将会将其转换为对应的10进制数并输出。
阅读全文