fuz*_*oat 10 objective-c endianness
我需要交换一些值的字节顺序,只是想知道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);
}
Run Code Online (Sandbox Code Playgroud)
感谢这里的指针,我有整数排序,最简单的交换浮点数的方法是什么?
int myInteger = CFSwapInt32BigToHost(myInteger);
Run Code Online (Sandbox Code Playgroud)
(以上代码更新)
float myFloat = floatFlip(myFloat);
Run Code Online (Sandbox Code Playgroud)
加里
您正在寻找OSSwapInt32()(或OSSwapInt16(),OSSwapInt64()等等).请参见OSByteOrder.h.
另请注意,这些都是不便携的.如果您只是转换为big-endian,您可能需要考虑使用htonl()标准库中包含的内容<arpa/inet.h>.(不幸的是,没有标准的库可以简单地来回交换.)