输出的是32位的
第1个回答 推荐于2017-10-04
#include <stdio.h>
// main
int main()
{
int a;
scanf_s("%d", &a);
char b[41] = { 0 };
char* p = b;
int i = 32;
while(i--)
{
*p++ = (a >> i & 0x1) + '0';
if(i % 4 == 0)
*p++=' ';
}
printf_s("%s\n", b);
return 0;
}本回答被提问者采纳
// main
int main()
{
int a;
scanf_s("%d", &a);
char b[41] = { 0 };
char* p = b;
int i = 32;
while(i--)
{
*p++ = (a >> i & 0x1) + '0';
if(i % 4 == 0)
*p++=' ';
}
printf_s("%s\n", b);
return 0;
}本回答被提问者采纳
第2个回答 2013-11-03
除二取余法,主函数自己写。
void binary(int n);
{
int i=0,j,a[1000];
while (n*2/2!=0)
{a[i]=n%2;
n=n/2;
i++;}
for(j=i-1;j>=0;j--)
printf("%d",a[i]);
}
大概是这样子追问
void binary(int n);
{
int i=0,j,a[1000];
while (n*2/2!=0)
{a[i]=n%2;
n=n/2;
i++;}
for(j=i-1;j>=0;j--)
printf("%d",a[i]);
}
大概是这样子追问
我想知道怎么用按位运算符。。。
追答早说嘛,且用&,或用|,异或用^,非用~,
除非外其他都是双目运算符,
输入两个十进制整数,系统会自动转为二进制进行运算,
然后再自动将结果转成十进制输出。
我是说怎么用按位运算符把十进制转换成二进制输出。。。
追答终于明白了,其实可以不用位运算符的……去求大神吧。
第3个回答 2013-11-04
#include<stdio.h>
void main()
{ unsigned int x,i,k;
scanf("%d",&x);
for ( i=0,k=0x80000000;i<32;i++,k>>=1 )
if ( x&k ) printf("1"); else printf("0");
printf("\n");
}本回答被网友采纳
void main()
{ unsigned int x,i,k;
scanf("%d",&x);
for ( i=0,k=0x80000000;i<32;i++,k>>=1 )
if ( x&k ) printf("1"); else printf("0");
printf("\n");
}本回答被网友采纳