用函数实现将任意两种进制的数制相互转换。
输入格式:
输入在一行给出三个整数,第1个数为原数的进制(正整数),第2数为原数(或正或负整数),第3个数为需转换的进制(正整数)。
输出格式:
输出转换后的数。
样例1">样例1">样例1">输入样例1:
在这里给出一组输入。例如:
8 76541 16
输出样例1:
在这里给出相应的输出。例如:
7D61
输入样例2:
在这里给出一组输入。例如:
2 -10111100 10
输出样例2:
在这里给出相应的输出。例如:
-188
#includeint main() { int old,now;//初始进制/目标进制 char a[100];//数组 scanf("%d %s %d", &old,a,&now); int shi = 0;//十进制 int quan = 1;//权 int temp = 0;//计算每位的值 int cont = 0;//新数组位数 int fu = 1; for (int i = strlen(a)-1; i >= 0; i--)//转换为十进制 { if (a[i] >= '0' && a[i] <= '9') temp = a[i] - '0'; else if (a[i] >= 'A' && a[i] <= 'Z') temp = a[i] - 'A' + 10; else { fu = -1; break; } shi += temp * quan; quan *= old; } while (shi)//转换为目标进制 { temp = shi % now; shi /= now; if (temp >= 10) a[cont] = temp - 10 + 'A'; else a[cont] = temp + '0'; cont++; } if (fu == -1) printf("-"); for (int i = cont-1; i >= 0; i--) printf("%c", a[i]); }



