C语言 大数的进制转换问题
//十进制转为二进制void ChaNumber(int radix,struct bigInt *a,struct bigInt *q) //radix = 2,a作为输入,q作为输出。
{
int i,j;
struct bigInt temp,rt;
if(IsZero(a))
{
printf("wrong!");
return;
}
else {
for(i = a->length - 1 , j=0 ; i >= 0 ; i--,j++)
{
if(q->array[i] >= 2)
{
rt.array[j] = temp.array[i] % radix;
temp.array[i] = temp.array[i] / radix;
}
else {
temp.array[i] = temp.array[i] + 10;
rt.array[j] = temp.array[i] % radix;
temp.array[i] = temp.array[i] / radix;
temp.array[i-1] = temp.array[i-1] - 1;
}
}
/* 确定运算结果的符号位 */
rt.sign = a->sign;
/* 复制商和余数 */
CopyBigInt(q,&rt);
}
}
结果一直为0,请问中间有什么问题吗?应该怎么修改比较好呢?麻烦帮我看看,谢谢。