我正在尝试创建一种算法,可以将基数为 10 的数字转换为基数为 n 的数字,其中 n 最多为 10。但是,由于某些奇怪的原因,C 中的以下算法在每个基数的某些关键点失败。例如,对于以 2 为底和以 3 为底的转换,所有直到 1023 和 52,487 的数字都可以工作,但超出的数字会产生一些奇怪的负面结果。我不知道为什么会这样;谁能帮我?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int returnint;
int baseconvert(int number,int base) {
if(number == 0 || base == 10) {
return returnint;
}
returnint = (number % base) + (10 * baseconvert(number / base, base));
return returnint;
}
int main() {
fprintf(stdout,"%d\n",baseconvert(1023,2));
fprintf(stdout,"%d\n",baseconvert(52487,3));
}
编辑:
以下是上述打印语句的打印结果,如果有帮助的话:
1410065408
-2094967296