Ver Mensaje Individual
  #5 (permalink)  
Antiguo 04/03/2005, 16:47
angsanchez
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
lo estaba haciendo mientras respondías

¡Epa! se me olvidó que no tienes 11 dígitos, sino 3 u 8.
Habrá que repartirlo. Son 3 y 7 dígitos hex, respectivamente. Es decir, he cambiado la función para que valga para todo tipo de número decimal, de cualquier tamaño:
Código PHP:
function decAhex(dec)
{    
dec ""+dec    //forzar texto
    
var hexChars="0123456789ABCDEF"
    
var nDigHex Math.ceildec.length/Math.log(16)*Math.LN10 )
    var 
dig = new Array(nDigHex)
    
dec parseInt(dec)    //ahora ya número
    
for (k=0k<nDigHexk++)
    {   
dig[k] = dec 16
        dec 
= (dec-dig[k]) / 16
    
}
    var 
resul ""
    
for (k=nDigHex-1k>-1k--)
    {    
resul += hexChars.charAt(dig[k])
    }    
    return 
resul

La puedes acomodar para tu caso así:
Sea "dato" tu texto inicial de 11 dígitos.
El resultado que quieres es
Código PHP:
resultado=decAhex(dato.substring(0,2))+decAhex(dato.substring(3)) 
(borra esos espacios que se cuelan en medio)
Creo que es correcto pero ¿tienes forma de verificarlo? Bueno, claro, a golpe de calculadora con varios ejemplos.
Suerte
__________________
Angel :cool: