2010-05-15 7 views
5

¿Alguien tiene un fragmento de código o una clase que tardará mucho tiempo y lo convertirá en una cadena hexadecimal de 16 bytes?Objetivo-C Decimal a Base 16 Conversión hexadecimal

Estoy buscando para convertir los datos como éste

long long decimalRepresentation = 1719886131591410351; 

y convertirlo en este

//Base 16 Hex Output: 17DE435307A07300 

El operador% x no quieren trabajar para mí

NSLog(@"Hex: %x",decimalRepresentation); 
//console : "Hex: 7a072af" 

Como puede ver, eso ni siquiera está cerca. ¡Cualquier ayuda es realmente apreciada!

Respuesta

10

%x imprime un entero sin signo en representación hexadecimal y sizeof(long long) != sizeof(unsigned). Ver p. "Data Type Size and Alignment" en la guía de transición de 64 bits.

Utilice el especificador ll (eso es de dos minúsculas L) para obtener la salida deseada:

NSLog(@"%llx", myLongLong); 
+0

Gracias, eso fue rápido! Todavía no lo he probado en iPhone, ¿sabes si funciona en el procesador de iPhone? – Justin

+0

El formato 'printf()' está bien especificado, así que no esperaría sorpresas allí. –

+0

nevmind my bad sorry – Justin

Cuestiones relacionadas