2017-10-04 50 views

回答

3

首先创建与 浮点数的大端表示一个32位的整数,则创建一个从整数 一个Data值(如在round trip Swift number types to/from Data证实为例):

let value = Float(42.13) 
var u32be = value.bitPattern.bigEndian 
let data = Data(buffer: UnsafeBufferPointer(start: &u32be, count: 1)) 
print(data as NSData) // <4228851f> 

验证结果通过将其转换回一个Float

let v = Float(bitPattern: UInt32(bigEndian: data.withUnsafeBytes { $0.pointee })) 
print(v) // 42.13 
+0

感谢MartinR你再一次震撼,有没有将解释这种类型的转换的任何资源? –