请用c语言编写程序,输入十六进制数,输出对应的十进制数
时间: 2024-10-10 11:03:45 浏览: 44
C语言进制转换,十进制转16进制
当然可以,下面是一个简单的C语言程序,它会读取用户输入的十六进制数,并将其转换成等效的十进制数:
```c
#include <stdio.h>
#include <string.h>
// 十六进制转十进制函数
int hex_to_decimal(char *hex_str) {
int len = strlen(hex_str);
int decimal_num = 0;
int base = 1;
for (int i = len - 1; i >= 0; i--) {
if (hex_str[i] >= '0' && hex_str[i] <= '9') {
decimal_num += (hex_str[i] - '0') * base;
} else if (hex_str[i] >= 'A' && hex_str[i] <= 'F') {
decimal_num += (hex_str[i] - 'A' + 10) * base;
} else if (hex_str[i] >= 'a' && hex_str[i] <= 'f') {
decimal_num += (hex_str[i] - 'a' + 10) * base;
}
base *= 16;
}
return decimal_num;
}
int main() {
char hex_input[50]; // 假设用户输入不会超过4位十六进制数
printf("请输入一个十六进制数:");
fgets(hex_input, sizeof(hex_input), stdin);
// 移除换行符
hex_input[strcspn(hex_input, "\n")] = '\0';
int decimal_output = hex_to_decimal(hex_input);
printf("该十六进制数 %s 对应的十进制数是:%d\n", hex_input, decimal_output);
return 0;
}
```
这个程序首先定义了一个`hex_to_decimal`函数,用于将十六进制字符串转换为十进制整数。然后在`main`函数中,提示用户输入十六进制数,读取并处理输入,最后输出结果。
阅读全文