请编写程序,输入十六进制数,输出对应的十进制数。 输入格式 十六进制非负整数 输出格式 对应的十进制非负整数 输入样例 13Ba 输出样例 5050 使用C语言只使用stdio.h
时间: 2024-09-23 14:13:54 浏览: 73
C++实现十六进制字符串转换为十进制整数的方法
你可以使用C语言的`scanf`函数读取用户输入的十六进制数,然后通过循环逐位转换成十进制数。这里是一个简单的C程序示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char hex_str[100];
printf("请输入一个十六进制数(例如: 13Ba): ");
scanf("%s", hex_str);
// 检查输入是否只包含合法的十六进制字符
if (strlen(hex_str) == 0 || !isxdigit(hex_str[0])) {
printf("输入错误,请输入一个有效的十六进制数。\n");
return 1;
}
unsigned int decimal_num = 0;
for (int i = 0; i < strlen(hex_str); i++) {
int digit = (hex_str[i] >= '0' && hex_str[i] <= '9') ? hex_str[i] - 'A' + 10; // A-F转化为10-15
decimal_num = decimal_num * 16 + digit;
}
printf("对应的十进制数是:%u\n", decimal_num);
return 0;
}
```
阅读全文