c语言编写一个程序,从键盘输入由数字字符和字母'A'~'F'组成的表示十六进制数的字符串,转换成十进制的长整数并输出。例如输入"4F"则长整数为
时间: 2025-06-15 15:20:32 浏览: 17
在C语言中,你可以创建一个函数来实现这个功能。首先,你需要遍历输入的字符串,然后将每个字符转换为对应的十六进制值(0~9对应十进制的0~9,A~F对应10~15),最后累加起来得到最终的十进制数。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
// 十六进制字符到十进制的映射
const char hex_to_decimal[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
long long int hex_to_decimal_str(char* str) {
long long int result = 0;
int len = strlen(str);
for(int i = 0; i < len; ++i) {
if (str[i] >= '0' && str[i] <= '9') {
result = result * 16 + str[i] - '0';
} else if (str[i] >= 'A' && str[i] <= 'F') {
result = result * 16 + hex_to_decimal[str[i] - 'A'] + 10;
}
}
return result;
}
int main() {
char input[10];
printf("请输入一个十六进制数(不超过四位): ");
fgets(input, sizeof(input), stdin); // 注意处理换行符
input[strlen(input)-1] = '\0'; // 去除fgets带来的换行符
long long int decimal_num = hex_to_decimal_str(input);
printf("该十六进制数转换成十进制后的结果是: %lld\n", decimal_num);
return 0;
}
```
当你运行这个程序,并输入"4F",它会输出 "该十六进制数转换成十进制后的结果是: 79"。
阅读全文
相关推荐


















