如何用C语言编写一个将十六进制数转换为十进制数的函数?
时间: 2024-12-06 10:24:25 浏览: 172
在C语言中,可以使用循环结构和ASCII码值来将十六进制数转换成十进制数。下面是一个简单的示例函数,它接受一个字符数组作为输入,其中包含十六进制数字,并返回对应的十进制数值:
```c
#include <stdio.h>
int hex_to_decimal(char hex[]) {
int decimal = 0;
int len = strlen(hex);
for (int i = 0; i < len; i++) {
if ('0' <= hex[i] && hex[i] <= '9') { // 0-9
decimal = decimal * 16 + (hex[i] - '0');
} else if ('A' <= hex[i] && hex[i] <= 'F') { // A-F
decimal = decimal * 16 + (hex[i] - 'A' + 10);
} else if ('a' <= hex[i] && hex[i] <= 'f') { // a-f
decimal = decimal * 16 + (hex[i] - 'a' + 10);
}
}
return decimal;
}
int main() {
char hex[] = "FF"; // 无前导0的十六进制数
int decimal_value = hex_to_decimal(hex);
printf("Hexadecimal %s is equal to decimal %d.\n", hex, decimal_value);
return 0;
}
```
在这个例子中,`hex_to_decimal()`函数遍历输入的十六进制字符串,检查每个字符是否为数字或字母(A-F/a-f),然后根据它们的ASCII位置减去相应的偏移量得到十进制值。
阅读全文
相关推荐















