c语言程序:输入一个十进制整数,输出该数值的二进制表示(使用按位运算符)

输出的是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;
}

本回答被提问者采纳
第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]);
}
大概是这样子追问

我想知道怎么用按位运算符。。。

追答

早说嘛,且用&,或用|,异或用^,非用~,
除非外其他都是双目运算符,
输入两个十进制整数,系统会自动转为二进制进行运算,
然后再自动将结果转成十进制输出。

追问

我是说怎么用按位运算符把十进制转换成二进制输出。。。

追答

终于明白了,其实可以不用位运算符的……去求大神吧。

第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");
}本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网