¡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.ceil( dec.length/Math.log(16)*Math.LN10 )
var dig = new Array(nDigHex)
dec = parseInt(dec) //ahora ya número
for (k=0; k<nDigHex; k++)
{ dig[k] = dec % 16
dec = (dec-dig[k]) / 16
}
var resul = ""
for (k=nDigHex-1; k>-1; k--)
{ 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