C语言不能二进制输出,通过以下代码可以将输入的十进制数转化为二进制进行输出。
#include<stdio.h>
void plus(int x);//正数二进制函数
void negative(int x);//负数二进制函数
int main()
{
int count;
printf("请输入一个数:>>>");
scanf("%d",&count);
if(count>=0) plus(count);
else negative(count);
putchar(10);
return 0;
}
//正数转二进制
void plus(int x)
{
for(int i=0;i<32;i++)
{
if((x&(0x80000000>>i))!=0) putchar('1');
else putchar('0');
if ((i+1)%4==0)putchar(' ');
}
}
//负数转二进制
void negative(int x)
{
putchar('1');
for(int i=0;i<31;i++)
{
if(((x-1)&(0x40000000>>i))!=0)putchar('0');
else putchar('1');
if ((i+2)%4==0)putchar(' ');
}
}
输出效果:
输入正数:输入12
请输入一个数:>>>12
0000 0000 0000 0000 0000 0000 0000 1100
输入负数:输入-10
请输入一个数:>>>-10
1000 0000 0000 0000 0000 0000 0000 1010