c语言16进制转化10进制
时间: 2024-09-21 11:01:29 浏览: 45
在C语言中,将十六进制数转换为十进制数,通常会涉及到字符串处理和乘法运算。你可以通过遍历字符串,每一位代表四位二进制,然后用对应的十六进制数字乘以16的相应次方来实现这个过程。以下是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
int hex_to_decimal(char hex[]) {
int decimal = 0;
int len = strlen(hex);
int power = 0;
for (int i = len - 1; i >= 0; i--) {
if (hex[i] >= '0' && hex[i] <= '9') { // 0- '0') * pow(16, power);
} else if (hex[i] >= 'A' && hex[i] <= 'F') { // A-F
decimal += ((hex[i] - 'A') + 10) * pow(16, power);
} else if (hex[i] >= 'a' && hex[i] <= 'f') { // a-f
decimal += ((hex[i] - '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`函数接收一个十六进制字符串,从右到左依次处理每一位,并累加到`decimal`变量上。
阅读全文