Ceci est un peu un suivi de this posting mais avec une question différente, je pensais que je devrais demander dans un thread séparé.Comment puis-je inverser l'ordre des octets d'un NSInteger ou NSUInteger dans l'objectif-c
Je suis au point où j'ai quatre octets consécutifs en mémoire que j'ai lus à partir d'un fichier. Je voudrais les stocker sous la forme d'un tableau de bits (la valeur int réelle de ces derniers n'a pas d'importance plus tard). Lorsque j'imprime ce qui est dans mon int, je remarque qu'il semble être stocké dans l'ordre inverse (little endian).
Est-ce que quelqu'un a une bonne méthode pour inverser l'ordre des octets. Puis, une fois inversé, choisir des bits consécutifs couvrant deux octets et la conversion à un int?
unsigned char data[] = { 0x00, 0x02, 0x45, 0x28 };
NSInteger intData = *((NSInteger *)data);
NSLog(@"data:%08x", intData); // data:28450200
Merci d'avoir regardé un peu autour de moi et n'ai pas trouvé NSSwapBigIntToHost. J'ai fini par faire des manipulations de bits inférieures comme vous l'avez suggéré. Je fais une petite supposition que mon code sera 32 bits dans mon code. Ce que j'ai fini par faire était de créer un char * unsf unsigned = (unsigned char *) &temp; Je fais alors une boucle et échange les octets, puis jette le tref à un entier. Pas joli mais fonctionne aussi longtemps que je suis à 32 bits. – Scott
bonne question et réponse – LolaRun