请你用C语言写一个16进制数转换10进制的函数
时间: 2024-05-13 18:15:36 浏览: 97
十六进制数转换成十进制数的函数
以下是一个将16进制数转换为10进制数的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 = base * 16;
} else if (hex[i] >= 'A' && hex[i] <= 'F') {
dec += (hex[i] - 55) * base;
base = base * 16;
}
}
return dec;
}
int main() {
char hex[] = "1F";
int dec = hexToDec(hex);
printf("%s in hex = %d in dec\n", hex, dec);
return 0;
}
```
该函数将接收一个16进制数作为输入,然后将其转换为10进制数并返回。函数使用一个循环来遍历16进制数中的每个数字,并根据数字的类型将其转换为10进制数。在函数中调用了C语言的字符串函数,因此需要包含`<string.h>`头文件。
阅读全文