满意答案

00e27ab806e4881f8254fe7ae8741834.png

xvbittt9159

2013.08.05

00e27ab806e4881f8254fe7ae8741834.png

采纳率:58%    等级:12

已帮助:3000人

#include

void main()

{

int result[15] = {0};//数组用来存放最终结果

int number,i;

printf("Input a number:");

scanf("%d",&number);

for(i=0;i<15;i++) //套用了手工求解2进制数的方法

{

result[i] = number%2;

if(!(number = number/2)) break;

}

for(i=14;i>=0;i--) //寻找第一个非零的数组元素

{

if(1==result[i]) break;

}

if(-1==i) i = 0; //如果输入是0,需要把i改为0,否则若果输入0就没有输出了

for(;i>=0;i--) //输出结果

{

printf("%d",result[i]);

}

printf("\n");

}

可能没上面的写得漂亮,但是应该挺好懂的。已经测试了0,6,32767等数字,结果显示正确。希望对楼主有帮助。

12分享举报

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐