十六进制转十进制C语言函数
时间: 2023-11-17 13:07:05 浏览: 241
以下是将十六进制转换为十进制的C语言函数示例:
```c
#include <stdio.h>
#include <string.h>
#include <math.h>
int hexadecimalToDecimal(char hex[]) {
int decimal = 0, length = strlen(hex);
for (int i = 0; hex[i] != '\0'; i++) {
if (hex[i] >= '0' && hex[i] <= '9') {
decimal += (hex[i] - '0') * pow(16, length - 1);
length--;
}
else if (hex[i] >= 'a' && hex[i] <= 'f') {
decimal += (hex[i] - 'a' + 10) * pow(16, length - 1);
length--;
}
else if (hex[i] >= 'A' && hex[i] <= 'F') {
decimal += (hex[i] - 'A' + 10) * pow(16, length - 1);
length--;
}
}
return decimal;
}
```
该函数接受一个十六进制字符串作为参数,并返回对应的十进制整数。函数中使用了循环和条件语句来处理每个十六进制位,并使用pow函数计算16的幂次方。
以下是一个示例程序,演示如何使用该函数将十六进制字符串转换为十进制整数:
```c
#include <stdio.h>
int hexadecimalToDecimal(char hex[]);
int main() {
char hex[9];
printf("请输入一个十六进制字符串(长度不超过8个字符):");
scanf("%s", hex);
int decimal = hexadecimalToDecimal(hex);
printf("该十六进制对应的十进制为:%d\n", decimal);
return 0;
}
```
阅读全文