用c语言编写一个函数,输入一个16进制数,输出相应的10进制数
时间: 2023-06-11 12:04:10 浏览: 58
好的,我可以帮你解答这个问题。以下是一个用 C 语言编写的函数,可以将输入的 16 进制数转换为相应的 10 进制数:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int hexToDec(char hex[]) {
int len = strlen(hex);
int base = 1;
int dec = 0;
for (int i = len - 1; i >= 0; i--) {
if (isdigit(hex[i])) {
dec += (hex[i] - '0') * base;
} else {
dec += (toupper(hex[i]) - 'A' + 10) * base;
}
base *= 16;
}
return dec;
}
int main() {
char hex[100];
printf("请输入一个16进制数:");
scanf("%s", hex);
printf("对应的10进制数为:%d\n", hexToDec(hex));
return 0;
}
```
这个函数的基本思路是将输入的 16 进制数从低位到高位依次转换为 10 进制数,然后相加得到最终的结果。在转换过程中,我们需要判断每个位上的字符是数字还是字母,并根据情况进行相应的转换。