萌新求助,用递归算法进行进制转化出现的问题
计算十进制转二进制时,输入1023以下的数,一切都正常,如输入1023,得到的结果是1111111111,之后超过1023的数,例如1024,就会显示1410065408这样的数,这是为什么呢?楼下贴代码。
#include<stdio.h>
long jinzhi(long n);
int main()
{
long n;
scanf("%ld",&n);
printf("%ld",jinzhi(n));
return 0;
}
long jinzhi(long n)
{
long result;
long t;
if(n==1)
result=1;
else
{
t=n%2;
result=t+10*jinzhi(n/2);
}
return result;
}