本关任务:编写一一个程序,能将输入的4位二进制数转换为十进制数并输出该十进制数。使用C语言
时间: 2024-10-14 08:06:40 浏览: 48
在C语言中,你可以编写一个简单的函数来实现这个功能。下面是一个示例程序,它接受一个四位二进制数作为字符串输入,并将其转换为等效的十进制数:
```c
#include <stdio.h>
#include <string.h> // 引入string.h库用于处理字符串
int binaryToDecimal(char binary[5]) {
int decimal = 0;
int base = 1;
// 从右到左遍历二进制字符串
for(int i = strlen(binary)-1; i >= 0; i--) {
if(binary[i] == '1') { // 如果当前位是1
decimal += base; // 加上对应位置的值
}
base *= 2; // 移位,准备下一位
}
return decimal;
}
int main() {
char binary[5];
printf("请输入一个四位的二进制数: ");
scanf("%s", binary); // 输入二进制数字符串
// 去掉多余的空格
binary[strlen(binary) - 1] = '\0'; // 最后一个字符可能是空格
binary[strlen(binary) - 2] = '\0'; // 如果有多个空格,则去掉第二个
int decimalValue = binaryToDecimal(binary);
printf("转换后的十进制数是: %d\n", decimalValue);
return 0;
}
```
这段程序首先读取用户的输入,然后去除多余的空格。接着,`binaryToDecimal`函数从二进制串的最右边开始,每次将当前位的值(如果是1)加到`decimal`变量上,并更新基数(base)为2的幂次。最后,主函数会显示结果。
阅读全文