用C语言设计一个程序,键盘输入一个任意4位二进制数,计算出它对应的十进制数
时间: 2024-10-10 19:07:46 浏览: 52
当然可以,设计一个简单的C语言程序来实现这个功能,你可以参考以下代码:
```c
#include <stdio.h>
// 函数定义,将二进制数转换成十进制
int binaryToDecimal(int num) {
int decimal = 0;
int base = 1;
while (num != 0) {
int last_digit = num % 10; // 取最后一位
decimal += last_digit * base;
num /= 10; // 移除最后一位
base *= 2; // 下一次乘以2,因为处理的是二进制数
}
return decimal;
}
int main() {
printf("请输入一个四位的二进制数: ");
char binary[5];
scanf("%s", binary); // 输入字符串形式的二进制数
// 检查输入是否为四位二进制数
if (strlen(binary) == 4 && binary[0] == '1' && binary[1] == '0' && binary[2] == '1' && binary[3] == '0') { // 简单假设用户只输入0101这样的形式
int decimal_num = binaryToDecimal(atoi(binary)); // 转换并打印结果
printf("该二进制数 (%s) 对应的十进制数是: %d\n", binary, decimal_num);
} else {
printf("无效的输入! 请确保输入了四位二进制数。\n");
}
return 0;
}
```
在这个程序中,我们首先定义了一个函数`binaryToDecimal`,用于将给定的二进制数转换为十进制。然后,在主函数`main`中,提示用户输入四个数字,并通过`scanf`读取。接着检查输入的有效性,如果是有效的四位二进制数(这里简单地假设用户只会输入1开头的四位数),则进行转换并输出结果。
请注意,上述代码是一个简化版,实际应用中需要处理更复杂的情况,例如错误输入、非二进制字符等,并提供合适的错误处理机制。
阅读全文