16进制转10进制C++代码
时间: 2023-09-09 16:08:34 浏览: 96
以下是一个将 16 进制转换为 10 进制的 C++ 代码示例:
```cpp
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int hexToDec(string hex) {
int dec = 0;
int len = hex.length();
for (int i = 0; i < len; i++) {
char c = hex.at(i);
int num = 0;
if (c >= '0' && c <= '9') {
num = c - '0';
} else if (c >= 'a' && c <= 'f') {
num = c - 'a' + 10;
} else if (c >= 'A' && c <= 'F') {
num = c - 'A' + 10;
}
dec += num * pow(16, len - i - 1);
}
return dec;
}
int main() {
string hex = "1A";
int dec = hexToDec(hex);
cout << hex << " in decimal is: " << dec << endl;
return 0;
}
```
这个示例代码中,先定义了一个 `hexToDec` 函数,用于将 16 进制字符串转换为 10 进制数。在函数中,首先定义了一个 `dec` 变量,用于保存最终转换后的 10 进制数。然后使用一个循环,遍历 16 进制字符串中的每一位字符。对于每个字符,根据其大小写和数字范围,将其转换为对应的数值。最后使用 `pow` 函数计算出对应位数的权重,并将其乘以数值后累加到 `dec` 变量中。最终,函数返回 `dec` 变量。
在 `main` 函数中,定义了一个 `hex` 变量,用于保存要转换的 16 进制字符串。然后调用 `hexToDec` 函数将其转换为 10 进制数,并输出结果。
阅读全文