编写C递归函数,将给定的十进制整数,转换为该数值的二进制表示(32位)
求指教
#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);
}
我这个代码就是用递归转化成二进制的 但是我用的不是用比如 10转化二进制 用 10/2的余数的 来求 我是用最基本的2=10(二进制) 所以只能求到1000多十进制