用c语言编写一个程序,这个程序作用是将一个正整数转化成二进制输出。
时间: 2024-04-16 07:26:58 浏览: 164
下面是一个将正整数转换为二进制并输出的C语言程序示例:
```c
#include <stdio.h>
void decimalToBinary(int num) {
if (num > 0) {
decimalToBinary(num / 2);
printf("%d", num % 2);
}
}
int main() {
int num;
printf("Enter a positive integer: ");
scanf("%d", &num);
printf("Binary representation: ");
if (num == 0) {
printf("0");
} else {
decimalToBinary(num);
}
printf("\n");
return 0;
}
```
在这个程序中,我们使用递归的方式将一个正整数转换为二进制形式。`decimalToBinary` 函数以整数 `num` 作为参数,首先判断 `num` 是否大于0,如果是,则将 `num` 除以2并调用自身来处理商部分,然后打印余数部分。这样可以保证二进制的输出顺序是从高位到低位。最后,在 `main` 函数中,我们获取用户输入的正整数,并调用 `decimalToBinary` 函数来输出对应的二进制表示。
请注意,如果输入的正整数为0,则直接打印出"0"作为二进制表示。
相关问题
用c语言编写一个程序,键盘中输入一个十进制正整数n,将n转化成二进制数并输出
在C语言中,你可以使用循环和位运算的方式来将十进制整数转化为二进制数。以下是简单的实现:
```c
#include <stdio.h>
void decimalToBinary(int n) {
if (n == 0) {
printf("0\n");
return;
}
int binary[32]; // 二进制数组,假设最大32位
int index = 0;
while (n > 0) {
binary[index++] = n % 2; // 取余得到最低位
n /= 2; // 向右移除最低位
}
// 输出二进制数,从高位到低位
for (int i = index - 1; i >= 0; i--) {
printf("%d", binary[i]);
}
printf("\n");
}
int main() {
int n;
printf("请输入一个十进制正整数: ");
scanf("%d", &n);
decimalToBinary(n);
return 0;
}
```
在这个程序中,`decimalToBinary`函数接收一个十进制数字,然后通过不断地除以2并取余数,把每一位的结果存储到数组`binary`中。最后,我们反转数组并打印出二进制结果。
用c语言编写一个程序:将一个十进制数正整数d转换为相应的二进制数
下面是用C语言实现将十进制数转换为二进制数的程序:
```c
#include <stdio.h>
int main() {
int d, i, j, bin[32];
printf("请输入一个正整数:");
scanf("%d", &d);
if (d < 0) {
printf("输入的不是正整数!\n");
return 0;
}
i = 0;
while (d > 0) {
bin[i] = d % 2;
d = d / 2;
i++;
}
printf("转换为二进制数为:");
for (j = i - 1; j >= 0; j--) {
printf("%d", bin[j]);
}
printf("\n");
return 0;
}
```
程序的运行结果如下:
```
请输入一个正整数:10
转换为二进制数为:1010
```
程序的实现思路是将输入的十进制数不断除以2,每次取余并将余数存储到一个数组中,直到商为0为止。最后再倒序输出数组中的每一位,就得到了该数的二进制表示。
阅读全文