c语言 用移位的方法实现二进制和十进制之间的转换

求一个c语言的代码
这个感觉真的好难,我自己还有其他实验要做,没时间做不过来了。。。

#include<stdio.h>
int main(void)
{int n=0;
 char c;
 printf("请输入一个二进制数:");
 scanf("%c",&c);
 while(c=='0'||c=='1')
   {printf("%c",c);
    n=(n<<1)+c-'0';
    scanf("%c",&c);
   }
 printf("B=%d\n",n);
 return 0;
}

追问

还能再帮我加上十进制转二进制吗?谢谢!

追答

#include<stdio.h>
void dec2bin(int n)
{if(n>1)dec2bin(n>>1);
 printf("%d",n&1);
}
int main()
{int n;
 printf("请输入一个十进制数:");
 scanf("%d",&n);
 printf("%d=",n);
 dec2bin(n);
 printf("B\n");
 return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-05-09

unsigned int mask=32768;   //mask = [1000 0000 0000 0000]

printf("Binary Eqivalent : ");

while(mask > 0)

{

if((num & mask) == 0 )

printf("0");

else

printf("1");

mask = mask >> 1 ;  // Right Shift

}

本回答被网友采纳

相关了解……

你可能感兴趣的内容

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