美文网首页iOS - Developer - Swift 进阶大全
Swift 蓝牙 将负数转换为Byte

Swift 蓝牙 将负数转换为Byte

作者: 花漾爱意 | 来源:发表于2020-12-18 21:43 被阅读0次

    Swift 将负数转换为Byte

    • 在Swift中,整数可以为32位或64位,具体取决于平台。您的代码将在8位字节的64位平台上创建一个与Int类型相同的字节数组。

      如果要将转换限制为32位整数,则使用Int32而不是Int,结果将是4个字节的数组,与平台无关。

    let value: Int32 = -1333
    let array = withUnsafeBytes(of: value.bigEndian, Array.init)
    print(array) // [255, 255, 250, 203]
    
    func byteArray<T>(from value: T) -> [UInt8] where T: FixedWidthInteger {
        withUnsafeBytes(of: value.bigEndian, Array.init)
    }
    
    print(byteArray(from: -1333))        // [255, 255, 255, 255, 255, 255, 250, 203]
    print(byteArray(from: Int32(-1333))) // [255, 255, 250, 203]
    print(byteArray(from: Int16(-1333))) // [250, 203]
    

    相关文章

      网友评论

        本文标题:Swift 蓝牙 将负数转换为Byte

        本文链接:https://www.haomeiwen.com/subject/jrwfnktx.html