如何添加两个8位数据以形成一个16位数据?

时间:2017-07-31 04:46:16

标签: arrays swift bluetooth-lowenergy

我正在开发一些蓝牙项目,该项目以两位特征的8位数据形式发送值,即来自一个特征uuid的8位数据和来自另一个特征uuid的另外一位8位数据。

我需要考虑前8位数据是最高有效字节,第二8位数据是最低有效字节。

现在我需要将它们组合成16位值并显示结果。

我是swift中位和字节转换的新手。

请帮帮我。

提前致谢。

2 个答案:

答案 0 :(得分:2)

let mostSignificantByte: UInt8 = 0x01
let leastSignificantByte: UInt8 = 0x02

let twoByteInteger = (UInt16(mostSignificantByte) << 8) | UInt16(leastSignificantByte)

// twoByteInteger is 0x0102

答案 1 :(得分:1)

Swift 3X和Xcode 8.0

  let byte1: UInt8 = 0x01
    let byte2: UInt8 = 0x02
    let bit16 = UnsafePointer([byte1,byte2]).withMemoryRebound(to: UInt16.self,
                                                     capacity: 1) {
                                                        $0.pointee
    }
    print(bit16) // 513

您可以here了解更多详情