十六进制转换为十进制的C语言代码
时间: 2024-10-25 16:17:07 浏览: 34
在C语言中,将十六进制数转换成十进制数可以使用循环和位操作。这里有一个简单的示例,展示了如何手动实现这个过程:
```c
#include <stdio.h>
#include <string.h>
// 十六进制转十进制函数
int hex_to_decimal(const char *hex_string) {
int decimal = 0;
int len = strlen(hex_string);
for (int i = 0; i < len; i++) {
// 确保字符是十六进制的,并转换为对应的整数值
if (hex_string[i] >= '0' && hex_string[i] <= '9') {
decimal = decimal * 16 + (hex_string[i] - '0');
} else if (hex_string[i] >= 'a' && hex_string[i] <= 'f') {
decimal = decimal * 16 + (hex_string[i] - 'a' + 10);
} else if (hex_string[i] >= 'A' && hex_string[i] <= 'F') {
decimal = decimal * 16 + (hex_string[i] - 'A' + 10);
} else {
printf("Invalid character in hexadecimal string.\n");
return -1;
}
}
return decimal;
}
int main() {
char hex[] = "FF"; // 示例十六进制字符串
int decimal_value = hex_to_decimal(hex);
printf("Hexadecimal %s is equal to decimal %d.\n", hex, decimal_value);
return 0;
}
```
在这个例子中,`hex_to_decimal`函数接受一个十六进制字符串作为输入,通过遍历每个字符并乘以16的相应幂次,然后加上字符代表的值(0-9对应0-9,A-F对应10-15),最终得到十进制表示。
阅读全文