帮我写一个C语言的代码,将十六进制字符转为10进制数字
时间: 2023-06-16 10:04:18 浏览: 106
将无符号的八进制字符串转换为十进制整数。-c语言教程
好的,以下是一个简单的实现:
```c
#include <stdio.h>
#include <string.h>
int hex_to_decimal(char hex[]) {
int decimal = 0;
int len = strlen(hex);
for (int i = 0; i < len; i++) {
int digit = 0;
if (hex[i] >= '0' && hex[i] <= '9') {
digit = hex[i] - '0';
} else if (hex[i] >= 'A' && hex[i] <= 'F') {
digit = hex[i] - 'A' + 10;
} else if (hex[i] >= 'a' && hex[i] <= 'f') {
digit = hex[i] - 'a' + 10;
} else {
return -1; // 非十六进制字符,返回错误代码
}
decimal = decimal * 16 + digit;
}
return decimal;
}
int main() {
char hex[] = "1A";
int decimal = hex_to_decimal(hex);
printf("%s in hex is %d in decimal.\n", hex, decimal);
return 0;
}
```
这个程序中,我们定义了一个 `hex_to_decimal` 函数,它接受一个十六进制字符串作为参数,并返回一个对应的十进制整数。函数内部使用了一个循环遍历字符串中的每个字符,判断它是哪个十六进制数字,并将它转换为对应的十进制数字。最后,我们在 `main` 函数中调用了这个函数,并打印出转换结果。
阅读全文