请编写程序,输入十六进制数,输出对应的十进制数。 输入格式 十六进制非负整数 输出格式 对应的十进制非负整数 输入样例 13Ba 输出样例 5050请使用C语言,不使用函数,只使用stdio.h,不使用其他数据库
时间: 2024-09-23 11:15:27 浏览: 104
下面是一个简单的C语言程序,用于将十六进制数转换为十进制数。这个程序并不使用函数,而是直接通过循环处理每一位进行计算:
```c
#include <stdio.h>
#include <string.h>
int main() {
char hex_str[33]; // 存储输入的十六进制字符串
scanf("%s", hex_str); // 输入十六进制数
int len = strlen(hex_str);
int decimal_num = 0; // 十进制结果
bool is_negative = false;
if (hex_str[0] == '-') { // 检查是否为负数
is_negative = true;
len--;
}
for (int i = 0; i < len; i++) {
if ('0' <= hex_str[i] && hex_str[i] <= '9') { // 一位数字
decimal_num = decimal_num * 16 + (hex_str[i] - '0');
} else if ('A' <= hex_str[i] && hex_str[i] <= 'F') { // 大写字母
decimal_num = decimal_num * 16 + (hex_str[i] - 'A' + 10);
} else if ('a' <= hex_str[i] && hex_str[i] <= 'f') { // 小写字母
decimal_num = decimal_num * 16 + (hex_str[i] - 'a' + 10);
} else { // 非法字符
printf("Invalid hexadecimal number.\n");
return 1;
}
}
if (is_negative) {
decimal_num = -decimal_num;
}
printf("%d\n", decimal_num); // 输出结果
return 0;
}
```
阅读全文
相关推荐

















