Мне нужно поменять смысл некоторых значений и просто интересно, есть ли что-либо в Objective-C, в настоящее время я обмениваю байты с помощью функции CStyle ниже (что, очевидно, я могу повторно использовать), я просто хотел проверить, что ничего не было конкретный я пропал?Подстановка Endianness в Objective-C?
float floatFlip(float inFloat) {
union {
int intValue;
float newFloat;
} inData, outData;
inData.newFloat = inFloat;
outData.intValue = CFSwapInt32BigToHost(inData.intValue);
return(outData.newFloat);
}
EDIT_001
Благодаря указателям здесь я целыми отсортирован, Что самый простой способ поменять поплавок?
int myInteger = CFSwapInt32BigToHost(myInteger);
(код выше обновлен)
float myFloat = floatFlip(myFloat);
Гэри
floatFlip() отлично выглядит. Я бы (лично) написал имя функции и аргументы, чтобы быть фиксированной шириной по доске 'Float32 Float32Flip (Float32 inFloat) {union {SInt32 intValue; Float32 newFloat; } inData, outData; ...} ', но я странный. Если вы используете C++, я бы передал по ссылке (для компилятора для проверки работоспособности - проверьте количество байтов для вас) или (C/objc) передайте указатель, поскольку вы в первую очередь заинтересованы в байтовой замене аргумента, а не байтовый обмен потенциально преобразованного/усеченного/переопределенного значения. – justin