c语言写一个函数,输人一个十六进制数,输出相应的十进制数
时间: 2023-06-11 09:05:27 浏览: 86
c++作业题---编写一个函数,输入一个十六进制数,便输出相应的十进制数
5星 · 资源好评率100%
好的,我可以帮你解决这个问题。以下是一个用 C 语言编写的将十六进制数转换为十进制数的函数:
```
#include <stdio.h>
int hexToDec(char hex[]) {
int i, digit, num = 0;
// 循环每个十六进制位并将其转换为十进制数
for (i = 0; hex[i] != '\0'; i++) {
// 如果字符是一个数字,则计算其数字值
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 {
break;
}
// 将当前数字乘以 16 的幂,然后将其添加到 num 变量中
num = num * 16 + digit;
}
// 返回十进制数
return num;
}
int main() {
char hex[100];
int dec;
// 读取十六进制数
printf("Input a hexadecimal number: ");
scanf("%s", hex);
// 调用函数将十六进制数转换为十进制数
dec = hexToDec(hex);
// 输出十进制数
printf("Decimal number is %d", dec);
return 0;
}
```
你可以将一个十六进制数作为输入,然后这个函数将返回相应的十进制数。
阅读全文