Code:
num_to_base62(num, base=62, out[], maxoutlen)
{
static baseindex[] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
new outlen, aux, aux2, aux3[32]
aux = num % base
aux3[outlen++] = baseindex[aux]
aux2 = floatround((num/62.0), floatround_floor)
while(aux2 && outlen <= maxoutlen)
{
aux = aux2 % base
aux2 = floatround((aux2/62.0), floatround_floor)
aux3[outlen++] = baseindex[aux]
}
for(new i; i < outlen; i++ )
out[i] = aux3[(outlen-1)-i]
}
to_base10(num[], b=62)
{
static base[] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
new limit = strlen(num)
new res=strpos(base, num[0], b)
for(new i=1; i < limit; i++)
{
res = b * res + strpos(base, num[i], b)
}
return res
}
strpos(base[], caracter, len)
{
for(new i; i <= len; i++)
if(base[i] == caracter) return i
return 0
}
__________________