Я должен подкачать порядок байтов некоторых значений и просто задался вопросом, было ли что-либо доступное в Objective C, в настоящее время я подкачиваю байты с функцией CStyle ниже (который, очевидно, я могу снова использовать), я просто хотел проверить, что не было ничего определенного, которое я пропускал?
float floatFlip(float inFloat) {
union {
int intValue;
float newFloat;
} inData, outData;
inData.newFloat = inFloat;
outData.intValue = CFSwapInt32BigToHost(inData.intValue);
return(outData.newFloat);
}
Благодаря указателям здесь мне отсортировали целые числа, что самый простой путь состоит в том, чтобы подкачать плавание?
int myInteger = CFSwapInt32BigToHost(myInteger);
(Код выше обновленного)
float myFloat = floatFlip(myFloat);
gary
Помимо уже упомянутых API, существует CoreFoundation / CFByteOrder.h .
Вы ищете ] OSSwapInt32 ()
(или OSSwapInt16 ()
, OSSwapInt64 ()
и т. Д.). См. OSByteOrder.h .
Также обратите внимание, что они не переносятся. Если вы выполняете преобразование только в big-endian, вы можете рассмотреть возможность использования чего-то вроде htonl ()
, которое включено в стандартную библиотеку
. (К сожалению, нет стандартной библиотеки для простого переключения местами вперед и назад.)