十六进制转十进制函数C语言
时间: 2023-09-10 07:08:22 浏览: 221
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] - 87) * base;
base *= 16;
} else if (hex[i] >= 'A' && hex[i] <= 'F') {
dec += (hex[i] - 55) * base;
base *= 16;
}
}
return dec;
}
int main() {
char hexNum[] = "1A";
printf("%s in hex equals to %d in decimal\n", hexNum, hexToDec(hexNum));
return 0;
}
```
该函数首先获取十六进制字符串的长度,然后使用基数为16的幂运算将每个十六进制数字转换为十进制数并相加,最终返回结果。
阅读全文