满意答案
xvbittt9159
2013.08.05
采纳率: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分享举报