我正在开发一些蓝牙项目,该项目以两位特征的8位数据形式发送值,即来自一个特征uuid的8位数据和来自另一个特征uuid的另外一位8位数据。
我需要考虑前8位数据是最高有效字节,第二8位数据是最低有效字节。
现在我需要将它们组合成16位值并显示结果。
我是swift中位和字节转换的新手。
请帮帮我。
提前致谢。
答案 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了解更多详情