How to convert a double into a byte array in swift?

前端 未结 7 1235
南笙
南笙 2020-11-27 17:02

I know how to do it in java (see here), but I couldn\'t find a swift equivalent for java\'s ByteBuffer, and consequently its .putDouble(double value) method.

Basically,
7条回答
  •  清酒与你
    2020-11-27 17:12

    func byteArray(_ value: T) -> [UInt8] {
        var value = value
        var initialArray = withUnsafeBytes(of: &value) { Array($0) }
    
        initialArray.reverse()
        var count = initialArray.count
        while initialArray.first == 0 && count > 1 {
            initialArray[0...count - 2] = initialArray[1...count - 1]
            count -= 1
        }
        if initialArray[0] >= 128 {
            var newArray = [UInt8](repeating: 0, count: count + 1)
            newArray[0] = UInt8(0)
            newArray[1...count] = initialArray[0...count - 1]
            return newArray
        } else {
            return Array(initialArray[0...count - 1])
        }
    }
    

提交回复
热议问题