Ver Mensaje Individual
  #5 (permalink)  
Antiguo 28/03/2010, 13:40
Devjunx
 
Fecha de Ingreso: diciembre-2009
Mensajes: 28
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Calcular números decimales a bases elevadas

Hola, estuve probando el codigo, y por ejemplo convertir un decimal alto a base 39:

Código:
$num = "6220737792000";
echo base_enesimal($num,$n=39);
me imprime:

0.153846153846,6.5641025641,256.025641026,9985.102 5641,389419.641026,15187366.1026,1595060972310

cuando deberia imprimir:

1,6,12,34,21,22,36,38,30

No veo como usar la funcion que propone o tal vez comprendi mal.

En esta página:

http://theserverpages.com/php/manual/en/function.base-convert.php

este código:

Código:
<?php
// Decimal > Custom
function dec2any( $num, $base=62, $index=false ) {
   if (! $base ) {
       $base = strlen( $index );
   } else if (! $index ) {
       $index = substr( "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ,0 ,$base );
   }
   $out = "";
   for ( $t = floor( log10( $num ) / log10( $base ) ); $t >= 0; $t-- ) {
       $a = floor( $num / pow( $base, $t ) );
       $out = $out . substr( $index, $a, 1 );
       $num = $num - ( $a * pow( $base, $t ) );
   }
   return $out;
}
?>
Es lo mas similar a lo que deseo, lo importante es que me convierta un numero decimal a otra base usando los "simbolos" o como hace el script (http://www.easysurf.cc/cnver17.htm) con numeros separados con comas. El problema con este código de arriba es que convierte mal los numeros decimales muy altos, como si se bloqueara, es decir si pongo:

Código:
$num = 62207377920022154654512;
echo dec2any($num,$base=39,$index=false );
ó

Código:
$num = 62207377920022154651551;
echo dec2any($num,$base=39,$index=false );
me imprime 3bw7put2gwp0ge8 en ambos casos a pesar que los numeros decimales son diferentes.

espero hasta ahora poder explicarme lo que necesito... convertir un numero entero de base decimal a otro de base superior a 36, a partir de numeros enteros de base decimal muy altos, me pregunto si un javascript puede hacerlo porque no puede hacerlo PHP con numero muy altos?....

Tal vez pueden arreglar este codigo php para que funcione con numeros muy altos?

Saludos