十六进制转换为十进制c++代码
时间: 2023-10-10 13:11:59 浏览: 85
c++ 十六进制转换十进制
4星 · 用户满意度95%
以下是将十六进制字符串转换为十进制数的C代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int hexToDec(char hex[]) {
int len = strlen(hex);
int base = 1; // 16^0
int dec = 0;
int i;
for (i = len - 1; i >= 0; i--) {
// 如果字符是 0-9,将其转换为数字
if (hex[i] >= '0' && hex[i] <= '9') {
dec += (hex[i] - 48) * base;
base *= 16;
}
// 如果字符是 A-F,将其转换为数字
else if (hex[i] >= 'A' && hex[i] <= 'F') {
dec += (hex[i] - 55) * base;
base *= 16;
}
// 如果字符是 a-f,将其转换为数字
else if (hex[i] >= 'a' && hex[i] <= 'f') {
dec += (hex[i] - 87) * base;
base *= 16;
}
}
return dec;
}
int main() {
char hex[100];
int dec;
printf("请输入十六进制数:");
scanf("%s", hex);
dec = hexToDec(hex);
printf("转换后的十进制数为:%d\n", dec);
return 0;
}
```
该代码使用一个 `hexToDec` 函数来执行实际的转换操作。该函数使用反向迭代,将每个字符转换为其对应的数字,并使用基数进行加权。最终的十进制值是每个加权和的总和。在主函数中,我们读取用户输入的十六进制数,并使用 `hexToDec` 函数将其转换为十进制数。最后,我们打印出转换后的十进制数。
阅读全文