十进制转换为2进制输出的是倒的

来源:百度知道 编辑:UC知道 时间:2024/06/03 19:45:50
比如8的二进制是1000而我的是0001.
#include "stdafx.h"

int main(int argc, char* argv[])
{
int a,c;
scanf("%d",&a);

for(;;)
{
if(a%2==0&&a>0){a=a/2;c=0;printf("%d",c);
continue;}
if(a%2==1&&a>1){a=((a-1)/2);c=1;printf("%d",c);continue;}
if(a==1){c=1;printf("%d",c);break;}
}
return 0;
}

#include <stdio.h>

int main(int argc, char* argv[])
{
int a;
long int c=0;
scanf("%d",&a);

for(;;)
{
if(a%2==0&&a>0){a=a/2;c=10*c+0;
continue;}
if(a%2==1&&a>1){a=((a-1)/2);c=10*c+1;continue;}
if(a==1){c=c*10+1;break;}
}
printf ("%ld",c);
return 0;
}