将十进制数转为R进制数
void change(int r, int n) {
int a[1005], x = 0;
while (n) {
a[x] = n % r;
n /= r;
x++;
}
for (int i = x - 1; i >= 0; i--)cout << a[i];
return;
}
将R进制数转为十进制数
int To(int r, char s[]) {
int l = strlen(s), n = 0, sum = 0, k;
for (LL i = l - 1; i >= 0; i--) {
if (s[i] >= 'A')k = (s[i] - '7')*pow(r, n);
else k = (s[i] - '0')*pow(r, n);
n++;
sum += k;
}
return sum;
}
故,将R1进制数n转化为R2进制数为
change(To(s));//注意这里的s是一个字符串
使用时要注意对于0的特判