2010-05-15 10 views
5

Qualcuno ha uno snippet di codice o una classe che impiegherà molto tempo e la trasformerà in una stringa esadecimale a 16 byte?Objective-C Decimal to Base 16 Conversione esadecimale

Sto cercando di trasformare i dati in questo modo

long long decimalRepresentation = 1719886131591410351; 

e trasformarlo in questo

//Base 16 Hex Output: 17DE435307A07300 

L'operatore% x non vuole lavorare per me

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

Come puoi vedere non è nemmeno vicino. Qualsiasi aiuto è veramente apprezzato!

risposta

10

%x stampa un numero intero senza segno in rappresentazione esadecimale e sizeof(long long) != sizeof(unsigned). Vedi per es. "Data Type Size and Alignment" nella guida di transizione a 64 bit.

Utilizzare il ll identificatore (thats due minuscole L) per ottenere il risultato desiderato:

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

Grazie, che è stato veloce! Non l'ho ancora provato su iPhone, sai se funziona sul processore iPhone? – Justin

+0

Il formato 'printf()' è ben specificato, quindi non mi aspetto sorprese. –

+0

mi dispiace male – Justin

Problemi correlati