如何用C语言编写一个函数,将输入的十六进制数转换为对应的十进制数?
时间: 2024-12-26 21:28:22 浏览: 35
在C语言中,你可以通过循环和ASCII码表来实现十六进制到十进制的转换。这里是一个简单的函数示例:
```c
#include <stdio.h>
#include <string.h>
int hex_to_dec(char hex[]) {
int decimal = 0;
int power = 0;
for (int i = strlen(hex) - 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_num[] = "FF"; // 输入十六进制数
printf("Decimal equivalent of %s is %d\n", hex_num, hex_to_dec(hex_num));
return 0;
}
```
这个函数`hex_to_dec`从字符串的末尾开始遍历,根据每个字符对应的十六进制值(0-9对应本身,A-F、a-f分别对应10-15),乘以16的相应次幂,并累加到结果`decimal`上。
阅读全文