2009-06-01 3 views
5

das Beispiel eines Array wie folgt gegeben:Wie kann ich Hexzahl in Integer und Strings in Objective C konvertieren?

idx = [ 0xe, 0x3, 0x6, 0x8, 0x2 ] 

I eine ganze Zahl und String-Darstellung eines jeden der angegebenen Elemente in Objective C erhalten möchten Ich habe ein Ruby-Beispiel verspottet, die perfekt funktioniert:

0xe gives 14 when i run 0xe.to_i and "e" when i run to_i(base=16) 
0x3 gives 3 when i run 0x3.to_i and gives 3 when i run to_i(base=16) 

Wie erreiche ich das in Objective C?

+0

Sind diese nicht - lokalisierte Nummern? – sbooth

+0

Ja. Sie sind nicht lokalisiert. –

Antwort

10

Um die dezimale und hexadezimale Äquivalente zu erhalten, würden Sie tun:

int number = 0xe; // or 0x3, 0x6, 0x8, 0x2 

NSString * decimalString = [NSString stringWithFormat:@"%d", number]; 
NSString * hexString = [NSString stringWithFormat:@"%x", number]; 
+0

Danke, Ok, das ist ein bisschen hilfreich. Kann ich aber 0xe in NSNumber speichern? Ich kann es nicht einem Int zuweisen, da ich dieses Zeug in NSArray speichern möchte, da Sie keine Standard-C-Typen darin verwenden können (veränderbar oder nicht) –

+1

NSNumber kann einen der primitiven numerischen Typen umbrechen. Natürlich können Sie die Strings im Array abspeichern, sobald Sie eine String-Repräsentation der Zahlen erstellt haben, . –

0

Sobald Sie ein NSString haben, können Sie nur die Methoden in dieser Klasse verwenden, wie intValue oder Longvalue oder floatvalue

Verwandte Themen