写一个C语言十六进制转十进制函数
时间: 2023-09-24 15:04:04 浏览: 167
当然,下面是一个简单的C语言函数,用于将十六进制数转换为十进制数:
```c
#include <stdio.h>
#include <math.h>
int hexToDecimal(char hex[]) {
int decimal = 0, power = 0;
int len = 0;
while (hex[len] != '\0') {
len++;
}
for (int i = len - 1; i >= 0; i--) {
if (hex[i] >= '0' && hex[i] <= '9') {
decimal += (hex[i] - '0') * pow(16, power);
} else if (hex[i] >= 'A' && hex[i] <= 'F') {
decimal += (hex[i] - 'A' + 10) * pow(16, power);
} else if (hex[i] >= 'a' && hex[i] <= 'f') {
decimal += (hex[i] - 'a' + 10) * pow(16, power);
}
power++;
}
return decimal;
}
int main() {
char hex[100];
printf("请输入一个十六进制数:");
scanf("%s", hex);
int decimal = hexToDecimal(hex);
printf("转换为十进制数为:%d\n", decimal);
return 0;
}
```
这个函数会读取用户输入的十六进制数,并将其转换为十进制数后输出。请注意,这个函数假设输入的十六进制数是有效的,并且不考虑负数的情况。
阅读全文