将十进制数转为二进制数,用c语言,简单一点并且要使用按位运算符

如题所述

#include <stdio.h>
int main()
{
        int i,j,n,a[20];
        while(scanf("%d",&n))
        {
                i = 0;
                while(n>0)
                {
                        a[i++] = n&1;
                        n = n>>1;
                }
                while(i--)
                {
                        printf("%d",a[i]);
                }
                printf("\n");
        }
        return 0;
}

如果不需要循环输入,可以把while(scanf())改成scanf().

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-23
#include <stdio.h>
int main()
{
unsigned long dec=12345678;
unsigned long mask=1;
unsigned int bin[32];
int i;

for(i=32;i>0;--i) {
if(dec & mask) bin[i-1]=1 ;
else bin[i-1]=0 ;
mask<<=1;

}

printf("%u(dec) = ",dec);
for(i=0;i<32;i++) printf("%u",bin[i]);
printf("(bin)\n");

return 0;
}

运行结果:
12345678(dec) = 00000000101111000110000101001110(bin)
第2个回答  2014-10-23
什么?这个不
第3个回答  2014-10-23
计算器
下载人工智能计算器追问

我是要编程序

追答

这个
写出运算过程
慢慢翻译成代码
就简单了

程序是修改的过程

追问

身边没电脑

相似回答