将十六进制数转换成对应的十进制数c语言
时间: 2024-12-11 10:39:09 浏览: 7
在C语言中,将十六进制数转换成对应的十进制数通常需要遍历每一位,然后利用每个十六进制数字(0-9,A-F)对应的十进制值(分别为0-9,10-15)。你可以创建一个函数来实现这个过程,这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 十六进制转十进制的函数
int hex_to_decimal(char* hex_string) {
int decimal = 0;
int power = 0;
// 遍历字符串,从后向前取每一位
for (int i = strlen(hex_string) - 1; i >= 0; i--) {
char c = hex_string[i];
if (c >= '0' && c <= '9') { // 0-9
decimal += (c - '0') * pow(16, power);
} else if (c >= 'A' && c <= 'F') { // A-F
decimal += (c - 'A' + 10) * pow(16, power);
} else if (c >= 'a' && c <= 'f') { // a-f
decimal += (c - 'a' + 10) * pow(16, power);
}
power++;
}
return decimal;
}
int main() {
char hex_num[] = "FF"; // 示例十六进制数
int decimal_num = hex_to_decimal(hex_num);
printf("Hexadecimal %s is equal to decimal %d.\n", hex_num, decimal_num);
return 0;
}
```
在这个例子中,`hex_to_decimal`函数接收一个十六进制字符串作为输入,通过计算每位的权重并累加得到最终的十进制数值。
阅读全文