用c语言写一个可以将十六进制转换为十进制且输出转换结果的代码
时间: 2024-11-04 21:11:20 浏览: 26
当然可以。下面是一个简单的C语言程序,它接受用户输入的十六进制数,并将其转换成对应的十进制数值:
```c
#include <stdio.h>
#include <string.h>
// 十六进制转十进制函数
int hex_to_dec(char hex_num[]) {
int len = strlen(hex_num);
int decimal = 0;
int base = 1;
for (int i = len - 1; i >= 0; i--) {
if (hex_num[i] >= '0' && hex_num[i] <= '9') {
decimal += (hex_num[i] - '0') * base;
} else if (hex_num[i] >= 'a' && hex_num[i] <= 'f') {
decimal += (hex_num[i] - 'a' + 10) * base;
} else if (hex_num[i] >= 'A' && hex_num[i] <= 'F') {
decimal += (hex_num[i] - 'A' + 10) * base;
}
base *= 16;
}
return decimal;
}
int main() {
char hex_input[50]; // 输入的最大长度为四位十六进制数
printf("请输入一个十六进制数: ");
fgets(hex_input, sizeof(hex_input), stdin); // 防止换行符
// 移除多余的换行符
hex_input[strcspn(hex_input, "\n")] = '\0';
int decimal_result = hex_to_dec(hex_input);
printf("十六进制数 %s 转换成十进制是 %d\n", hex_input, decimal_result);
return 0;
}
```
当你运行这个程序并输入一个十六进制数,例如`FA`, 它会输出 `250`,因为十六进制的 `FA` 相当于十进制的 `250`。
阅读全文