请编写程序,输入十六进制数,输出对应的十进制数。 输入格式 十六进制非负整数 输出格式 对应的十进制非负整数 输入样例 13Ba 输出样例 5050请使用C语言,不使用函数,只使用stdio.h
时间: 2024-09-23 11:15:24 浏览: 46
在C语言中,我们可以使用循环和位操作符来将十六进制转换为十进制。这里是一个简单的示例,它不使用函数,并且直接在主程序中完成这个转换:
```c
#include <stdio.h>
#include <string.h>
int main() {
char hex_input[32];
scanf("%s", hex_input); // 输入十六进制字符串
int decimal_output = 0;
int len = strlen(hex_input);
for(int i = 0; i < len; i++) {
if(isxdigit(hex_input[i])) { // 检查字符是否为十六进制数字
int digit_value = (hex_input[i] >= 'A' && hex_input[i] <= 'F') ? hex_input[i] - 'A' + 10 : hex_input[i] - '0'; // A-F转换为10-15,0-9不变
decimal_output = decimal_output * 16 + digit_value; // 将当前值乘以16并加上对应数值
}
}
printf("对应的十进制数是:%d\n", decimal_output); // 输出结果
return 0;
}
```
在这个程序中,我们首先读取用户输入的十六进制字符串,然后遍历每个字符,判断其是否为十六进制数字。如果是,我们将它转换为相应的十进制值,并更新最终的十进制输出。最后,打印出转换后的十进制数。
阅读全文