【发布时间】:2014-11-17 15:54:20
【问题描述】:
我正在寻找一种强大而优雅的方法来从数组中提取四个大端字节作为浮点数。
我可以通过这样的方式获得带有位的 UInt32:
let data: [Byte] = [0x00, 0x00, 0x00, 0x40, 0x86, 0x66, 0x66, 0x00]
let dataPtr = UnsafePointer<Byte>(data)
let byteOffset = 3
let bits = UnsafePointer<UInt32>(dataPtr + byteOffset)[0].bigEndian
但我想不出在 Swift 中将其转换为浮点数的好方法。
例如,在 Java 中:
float f = Float.intBitsToFloat(bits)
或在 C 中:
float f = *(float *)&bits;
我尝试将 dataPtr 强制转换为浮点 UnsafePointer,但是字节顺序是个问题。
有什么建议吗?
【问题讨论】:
标签: swift type-conversion floating-point-conversion