Acabo de entender a que te referías, un sec que te respondo. Perdona por la respuesta anterior.
Para convertir dicimal a una base alta es relativamente simple.
Primero tienes que crear un índice de símbolos. Por ejemplo el decimal tiene la siguiente equivalencia ('1' es un símbolo y 1 es un valor):
'0'->0, '1'->1, '2'->2, ... , '9'->9
El Hexadecimal tiene algo parecido solo que:
'0'->0, '1'->1, '2'->2, ... , '9'->9, 'A'->10, ... ,'F'->16
Bueno pues tu tienes que crearte un índice con valores de 39, 33, 70 carácteres. Cual es tu problema, que 70 es un número increíble de carácteres y o usas las tildes y los símbolos raros, o vas a tener que repeitr números, que es lo que hace la página (cada conjunto 17, es como un símbolo que vale 17).
Te voy a explicar el sistema para este último método que no necesita que la base sea pequeña, ni definir el índice.
Entonces definimos la base, por ejemplo, la enesimal (n)
Código PHP:
Ver originalfunciton base_enesimal($num,$n=70){ //Esto es una función que pasa el número $num
//a la base enesimal (siendo el valor por defecto $n=70.
$result = "";
while($num > 0){
$result = ($num % $n).",".$result; //Esto añade el carácter seguido de una , al inicio de la cadena
$num = intval($num/$n); //Esto modifica el número que usamos para quitar el carácter que hemos extraido. }
return substr($result,0,-1); //esto quita la coma que aparecería al final y devuelve el resultado. }
Luego para deshacer el cambio se usa:
Código PHP:
Ver originalfunciton enesimal_a_decimal($str,$n=70){
$result = 0;
$str = explode(",",$str); //dividimos la cadena en sus carácteres $j = 0;
foreach($str as $i) $result += $i*pow($n,$j); //esto invierte el algoritmo. return $result;
}