请用c语言编写程序,输入十六进制数,输出对应的十进制数。 输入格式 十六进制非负整数 输出格式 对应的十进制非负整数 输入样例 13Ba
时间: 2024-10-01 11:12:29 浏览: 49
C语言实现十六进制数据转十进制数据
在C语言中,你可以使用`scanf`函数读取用户输入的十六进制数,然后通过循环逐位转换成十进制。这里是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
// 十六进制到十进制的转换函数
int hex_to_dec(char hex_char) {
if (hex_char >= '0' && hex_char <= '9') {
return hex_char - '0';
} else if (hex_char >= 'A' && hex_char <= 'F') {
return hex_char - 'A' + 10;
} else if (hex_char >= 'a' && hex_char <= 'f') {
return hex_char - 'a' + 10;
}
// 如果不是有效的十六进制字符,返回0
return 0;
}
int main() {
char hex_input[100];
printf("请输入一个十六进制数:");
scanf("%s", hex_input); // 读取输入的字符串
int decimal = 0;
int len = strlen(hex_input);
for (int i = 0; i < len; i++) {
decimal <<= 4; // 左移四位相当于乘以16
decimal += hex_to_dec(hex_input[i]); // 加上当前位的值
}
printf("对应的十进制数是:%d\n", decimal);
return 0;
}
```
在这个程序中,我们首先定义了一个将单个十六进制字符转换为十进制的函数`hex_to_dec`。然后,在`main`函数中,我们读取用户的输入,并通过循环计算每个十六进制位对最终十进制数的影响。
阅读全文