就连进制转换都这么有意思
如果n是负数的时候,那么n%r得到的是一个负数,而不是一个正数
那么,如果我们想要得到关于n为负数时的进制转换,那么就需要先把n变为正数
特别的,如果n为0,那么它的任意进制转换都为0
#include<iostream>
using namespace std;
int main()
{
int n, r;
cin >> n >> r;
char o[100];
int i = 0;
if (n == 0)
cout << 0;
if (n < 0)
{
cout << "-";
n = -n;
}
while (n != 0)
{
int x = n % r; //依低位到高位的存取
if (x <= 9)
o[i++] = x - 0+'0'; //正序存放
else
o[i++] = x - 10 + 'A';
n /= r;
}
while (i != 0) //倒序输出
{
cout << o[--i];
}
return 0;
}