2011-04-12 10 views
7

¿Hay un incorporado en el forma en Mathematica para obtener la representación hexadecimal de un entero positivo como una cadena (usando letras del alfabeto como dígitos más altos)? Actualmente utilizo mi propia aplicación comoObtener representación hexadecimal de un entero como una cadena en Mathematica

toHexString[n_Integer] := 
StringJoin[ 
    ToString /@ 
    (IntegerDigits[n, 16] /. Thread[Range[10, 15] -> CharacterRange["A", "F"]]) 
] 

Respuesta

15
In[254]:= IntegerString[{16, 34, 110, 5676767}, 16] 

Out[254]= {"10", "22", "6e", "569edf"} 

o, si no te gusta los caracteres en minúsculas estándar en el resultado:

In[255]:= ToUpperCase[IntegerString[{16, 34, 110, 5676767}, 16]] 

Out[255]= {"10", "22", "6E", "569EDF"} 

Tenga en cuenta que IntegerString tiene un tercer argumento opcional que es muy útil para generar series de nombres de archivos que se ordenan en el orden correcto cuando se ordenan alfabéticamente:

In[256]:= Table["filename" <> IntegerString[i, 10, 4] <> ".jpg", {i, 1, 7}] 

Out[256]= {"filename0001.jpg", "filename0002.jpg", 
"filename0003.jpg", "filename0004.jpg", "filename0005.jpg", 
"filename0006.jpg", "filename0007.jpg"} 
Cuestiones relacionadas