簡體   English   中英

UInt8 [4]迅速詮釋

[英]UInt8[4] to Int in swift

我使用以下函數將Int轉換為UInt8 [4]:

    func toByteArray(var value: Int) -> [UInt8] {
    var msgLength = [UInt8](count: 4, repeatedValue: 0)

    for i in 0...3 {
        msgLength[i] = UInt8(0x0000FF & value >> Int((3 - i) * 8))
    }
    return msgLength
    }

如何實現UInt8 [4]的Int?

看到這個答案:

如何在字節數組之間進行類型轉換

func toByteArray( value: Int) -> [UInt8] {
    var msgLength = [UInt8](count: 4, repeatedValue: 0)

    for i in 0...3 {
        msgLength[i] = UInt8(0x0000FF & value >> Int((3 - i) * 8))
    }
    return msgLength
}

// call your function to generate the byte array.  Reverse the order
// since fromByteArray wants them in the reverse (little endian) order    
let b = Array(toByteArray(1234567890).reverse())

func fromByteArray<T>(value: [UInt8], _: T.Type) -> T {
    return value.withUnsafeBufferPointer {
        return UnsafePointer<T>($0.baseAddress).memory
    }
}

let i = fromByteArray(b, Int32.self)
print(i) // 1234567890

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM