现在让我们写一个程序让十进制与二进制互相转换,输入 有多组测试数据,请用while(…)读入数据,直到EOF。 每个测试输入一行,包含F(F为字符B或D),N(0<=N<=255)。. B代表N为二进制(二进制为8位),D代表N为十进制。 输出 输出N对应的二进制或十进制,输出二进制要占满8位,如果不满8位前面用0补充。 样例输入 B 00001101 D 13 样例输出 13 00001101 提示 1、用while(scanf(“%c”,&f)!=EOF)循环读取每组数据。 2、记得用getchar()读掉回车键中的换行,否则下一个%c会被错读。 3、根据f判断接下来操作,二进制转十进制如上说明,十进制转二进制每次对2取余,如: 11%2=1 11/2=5 5%2=1 5/2=2 2%2=0 2/2=1 1%2=1 1/2=0 逆序取出余数,11的二进制为1011。
时间: 2024-02-21 14:58:00 浏览: 103
好的,这是一个比较简单的程序,我可以帮你编写。以下是示例代码:
```python
#include <stdio.h>
int main() {
char f;
int n;
while (scanf("%c %d", &f, &n) != EOF) { // 循环读取每组数据
getchar(); // 读掉回车键中的换行
if (f == 'D') { // 十进制转二进制
int binary[8] = {0}; // 初始化为0
int i = 7; // 从最高位开始
while (n > 0) { // 不断对2取余
binary[i--] = n % 2;
n /= 2;
}
for (i = 0; i < 8; i++) { // 输出二进制
printf("%d", binary[i]);
}
printf("\n");
} else if (f == 'B') { // 二进制转十进制
int decimal = 0;
int base = 1; // 从最低位开始
int i;
for (i = 7; i >= 0; i--) { // 逆序读取二进制
decimal += (n % 10) * base;
n /= 10;
base *= 2;
}
printf("%d\n", decimal); // 输出十进制
}
}
return 0;
}
```
你可以将以上代码保存为一个文件,例如 `convert.c`,然后使用 C 语言编译器进行编译,生成可执行文件。在 Linux/MacOS 系统中,你可以使用以下命令编译:
```
gcc -o convert convert.c
```
这将会生成一个名为 `convert` 的可执行文件,然后你可以使用以下命令运行程序:
```
./convert
```
接下来,你可以输入测试数据,程序会自动输出结果。
阅读全文
相关推荐
















