高精度任意进制转换
代码是从discuss里找到的,据说是maigo神牛写的。
超精简!!
我自己第一写的时候,还把n进制先转成10进制,然后再从10进制转为m进制。。。
悲催的是写了好长滴,还没调对啊!!!
Code:
#include
#include
const int maxn = 1000;
int t[maxn], A[maxn];
char str1[maxn], str2[maxn];
int n, m;
void solve()
{
int i, len, k;
len = strlen(str1);
for(i=len; i>=0; --i) t[len-1-i] = str1[i] -(str1[i]<58 48: str1[i]<97 55: 61);
for(k=0; len;) {
for(i=len; i>=1; --i) {
t[i-1] +=t[i]%m*n;
t[i] /= m;
}
A[k++] = t[0] % m;
t[0] /=m;
while(len>0&&!t[len-1]) len--;
}
str2[k] =NULL;
for(i=0; i