Как я могу изменить порядок байтов NSInteger или NSUInteger в objective-c

Это своего рода продолжение этой публикации , но с другим вопросом, поэтому я решил, что должен задать отдельный поток.

Я нахожусь в точке, где у меня есть четыре последовательных байта в памяти, которые я прочитал из файла. Я хотел бы сохранить их как битовый массив (их фактическое значение int не имеет значения, но позже). Когда я распечатываю то, что находится в моем int, я замечаю, что он, кажется, хранится в обратном порядке (little endian).

Есть ли у кого-нибудь хороший способ изменить порядок байтов на обратный. Затем, как только поменяли местами, выбирая последовательные биты, охватывающие два байта, и преобразуя их обратно в int?

unsigned char data[] = { 0x00, 0x02, 0x45, 0x28 };
NSInteger intData = *((NSInteger *)data);

NSLog(@"data:%08x", intData); // data:28450200

6
задан Community 23 May 2017 в 12:15
поделиться