C语言 16进制转10进制函数
时间: 2023-10-02 18:08:42 浏览: 78
下面是一个将 16 进制字符串转换为 10 进制整数的 C 语言函数:
```c
#include <stdio.h>
#include <stdlib.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;
} else if (hex[i] >= 'a' && hex[i] <= 'f') {
dec += (hex[i] - 87) * base;
base = base * 16;
}
}
return dec;
}
int main() {
char hex[] = "1A";
printf("%s in decimal = %d\n", hex, hexToDec(hex));
return 0;
}
```
该函数将输入的 16 进制字符串转换为 10 进制整数。函数首先计算输入字符串的长度,然后从字符串的最后一个字符开始遍历,并根据字符是数字还是字母计算其对应的数值。最后,将所有字符对应的数值相加,得到最终的 10 进制整数。
阅读全文