C语言编写一个函数,实现将十六进制数转换为相应的十进制数。在主程序中实现数据的输入与输出
时间: 2024-02-19 18:02:40 浏览: 73
顺序栈、链栈将10进制转为2、8、16进制源码
5星 · 资源好评率100%
好的,下面是一个将十六进制数转换为十进制数的C语言函数的实现:
```c
#include <stdio.h>
#include <string.h>
#include <math.h>
int hexToDec(char hex[]) {
int len = strlen(hex);
int base = 1;
int dec = 0;
for (int i = len - 1; i >= 0; i--) {
if (hex[i] >= '0' && hex[i] <= '9') {
dec += (hex[i] - 48) * base;
base *= 16;
} else if (hex[i] >= 'A' && hex[i] <= 'F') {
dec += (hex[i] - 55) * base;
base *= 16;
}
}
return dec;
}
int main() {
char hex[20];
printf("请输入一个十六进制数:");
scanf("%s", hex);
printf("转换后的十进制数为:%d\n", hexToDec(hex));
return 0;
}
```
这个函数的实现思路是,从十六进制数的最后一位开始,按位将十六进制数转换成十进制数,最后把每一位的转换结果加起来即可。其中,如果当前位是数字('0'-'9'),则将它转换成对应的十进制数;如果当前位是字母('A'-'F'),则将它转换成对应的十进制数。在程序中,使用了ASCII码将字符转换成对应的数字,具体转换方法可以查阅相关资料。
阅读全文