Tôi đang tìm một cách mạnh mẽ và thanh lịch để trích xuất bốn byte lớn từ một mảng dưới dạng Float.Swift: trích xuất float từ dữ liệu byte
tôi có thể có được một UInt32 với các bit thông qua một cái gì đó như thế này:
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
Nhưng tôi không thể tìm ra một cách tốt để chuyển đổi này vào một phao trong Swift.
Ví dụ, trong Java:
float f = Float.intBitsToFloat(bits)
hoặc trong C:
float f = *(float *)&bits;
tôi đã cố gắng đúc các dataPtr đến một phao UnsafePointer, nhưng sau đó endianness là một vấn đề.
Mọi đề xuất?
Đó là tốt hơn ... –
Vâng, thậm chí rõ ràng hơn. Cảm ơn! – NickHowes