将b进制转换成十进制
int get(string k, int b)
{
int res = 0;
for(auto c : k)
{
res = res * b + c - '0';//相当于从最高位开始枚举
//每次把这个数向高位移动一位
}
return res;
}
短除法将十进制转换成b进制
char get(int k)
{
if(k <= 9) return k + '0';
return k - 10 + 'A';//超过10进制用A表示10 B表示11....
}
string base(int n, int b)
{
string num;
while(n) num += get(n % b), n / b;
reverse(num.begin(), num.end());//反转一下需要取 (从末尾开始取余数放到第一位)
return num;
}
求关注