用c语言完成输入一个十进制数输出它的二进制数并去掉任何一个多余的零
时间: 2024-03-05 18:54:10 浏览: 29
可以使用位运算实现输入一个十进制数,输出它的二进制数并去掉任何一个多余的零,具体过程如下:
```c
#include <stdio.h>
int main()
{
int num, bit, flag = 0;
printf("请输入一个十进制数:");
scanf("%d", &num);
printf("该数的二进制数为:");
for (bit = 31; bit >= 0; bit--)
{
int val = num >> bit;
if (val & 1)
{
printf("1");
flag = 1;
}
else if (flag)
{
printf("0");
}
}
if (!flag)
{
printf("0");
}
printf("\n");
return 0;
}
```
上述代码中,首先通过`scanf`获取输入的十进制数,然后从最高位开始,依次获取每一位的值,并判断是否为1。如果是1,则输出1,并将标记`flag`设置为1。如果不是1,则判断前面是否已经输出过1,如果已经输出过,则输出0。最后判断是否输出过任何一个1,如果没有,则输出0。最终输出的二进制数去掉了多余的零。
相关问题
c语言输入一个十进制数,输出一个二进制数
下面是一个将十进制数转换为二进制数的C语言程序:
```c
#include <stdio.h>
int main() {
int decimal, binary[32], i = 0;
printf("请输入一个十进制数:");
scanf("%d", &decimal);
while (decimal > 0) {
binary[i] = decimal % 2;
decimal /= 2;
i++;
}
printf("转换为二进制数为:");
for (int j = i - 1; j >= 0; j--) {
printf("%d", binary[j]);
}
printf("\n");
return 0;
}
```
程序首先要求用户输入一个十进制数,然后通过循环将该数转换为二进制数,并将每一位存储在一个数组中。最后,程序倒序输出该数组中的数,从而输出二进制数。
c语言输入一个十进制数,将它转换为二进制数并显示出来
可以使用以下代码实现:
```c
#include <stdio.h>
int main() {
int decimal, binary[32], i = 0;
printf("请输入一个十进制数:");
scanf("%d", &decimal);
while (decimal > 0) {
binary[i] = decimal % 2;
decimal /= 2;
i++;
}
printf("转换为二进制数为:");
for (int j = i - 1; j >= 0; j--) {
printf("%d", binary[j]);
}
printf("\n");
return 0;
}
```
输入一个十进制数,程序会将其转换为二进制数并显示出来。