C语言十六进制转10进制
时间: 2024-11-13 14:20:17 浏览: 26
在C语言中,将十六进制数转换成十进制数通常需要通过循环和一些数学运算来实现。你可以手动逐位计算每个十六进制数字(0-9,A-F)代表的值(0-9对应其本身,A-F分别对应10、11、12、13、14、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--) {
if(hex_string[i] >= '0' && hex_string[i] <= '9') {
decimal += (hex_string[i] - '0') * pow(16, power);
} else if(hex_string[i] >= 'A' && hex_string[i] <= 'F') {
decimal += (hex_string[i] - 'A' + 10) * pow(16, power);
} else if(hex_string[i] >= 'a' && hex_string[i] <= 'f') {
decimal += (hex_string[i] - 'a' + 10) * pow(16, power);
}
power++;
}
return decimal;
}
int main() {
char hex[] = "FF"; // 十六进制字符串
printf("Hexadecimal %s is equal to decimal %d\n", hex, hex_to_decimal(hex));
return 0;
}
```
在这个示例中,`hex_to_decimal`函数会把输入的十六进制字符串转换成对应的十进制数值。
阅读全文