c语言任意输入一个十进制正整数,将其转换成二进制输出,不要用数组
时间: 2024-05-07 18:21:51 浏览: 99
C语言-顺序栈实现十进制转换为二进制-八进制-十六进制
可以使用位运算符来实现十进制转二进制,具体思路是不断地将十进制数除以2,每次取余数作为二进制的一位,直到商为0为止。代码如下:
```c
#include <stdio.h>
int main() {
int n, binary = 0, digit = 1;
printf("请输入一个十进制正整数:");
scanf("%d", &n);
while (n != 0) {
binary += (n % 2) * digit;
n /= 2;
digit *= 10;
}
printf("二进制数为:%d", binary);
return 0;
}
```
这里使用了两个变量,`binary`表示转换后的二进制数,`digit`表示当前位的权值,初始值为1。在循环中,每次取当前余数乘以当前位的权值,累加到二进制数中,然后将十进制数除以2,将权值乘以10,继续进行下一次循环。最后输出转换后的二进制数即可。
阅读全文