umkehren Dies ist ein etwas von einem Follow-up zu this posting aber mit einer anderen Frage, so dass ich fühlte, ich sollte in einem separaten Thread fragen.Wie kann ich die Byte-Reihenfolge eines NSInteger oder NSUInteger in objective-c
Ich bin an dem Punkt, wo ich vier aufeinander folgende Bytes im Speicher habe, die ich aus einer Datei eingelesen habe. Ich möchte diese als ein Bit-Array speichern (der tatsächliche Wert von ihnen spielt keine Rolle bis später). Wenn ich ausdrücke, was in meinem int ist, bemerke ich, dass es in umgekehrter Reihenfolge (Little Endian) gespeichert scheint.
Hat jemand eine gute Methode zum Umkehren der Reihenfolge der Bytes. Dann, einmal umgekehrt, indem aufeinanderfolgende Bits ausgewählt werden, die zwei Bytes umfassen und zurück zu einem int?
unsigned char data[] = { 0x00, 0x02, 0x45, 0x28 };
NSInteger intData = *((NSInteger *)data);
NSLog(@"data:%08x", intData); // data:28450200
Danke ich hatte mich ziemlich viel umgesehen und NSSwapBigIntToHost nicht gefunden. Am Ende habe ich etwas weniger manipuliert, wie Sie es vorgeschlagen haben. Ich gehe davon aus, dass meine Ints 32-Bit in meinem Code sein werden. Was ich am Ende getan habe, war ein vorzeichenloses char * tref = (unsigned char *) &temp; Ich Schleife dann durch und tausche die Bytes, dann den Tref auf eine ganze Zahl. Nicht schön, aber funktioniert solange ich 32-Bit bin. – Scott
große Frage und Antwort – LolaRun