自己编写的一个10进制转化成二进制的代码 成功了
但是我这个代码转化 要求10进制收到long int的限制 有高手给点新建议么#include<stdio.h>long int change(long int n,long int sum)
{long int a,d,b=1,i;
if(n==1) return(sum+1);
else
{for(a=2,i=1;2*a<=n;a=2*a,i++);
for(d=1;d<=i;d++) b=b*10;
sum=sum+b;
if(a==n)
return(sum);
else
{b=1;change((n-a),sum);}
}
}
void main()
{printf("输入一个10进制的数字,请别太大 因为该算法局限有被long int局限\n");
long int n,sum;
scanf("%d",&n);
sum=change(n,0);
printf("输出的二进制是%d\n",sum);
}