如何快速转换字节位置

时间:2019-05-30 20:21:12

标签: swift byte

我该如何正确转换?我需要的值是0-1号字节,格式为uint16,单位为度。

print("derived : \(characteristic.value!)")
print(String(bytes: characteristic.value!, encoding: .utf16))

derived : 20 bytes
Optional("\0{Ͽ⌜ƀ")

1 个答案:

答案 0 :(得分:0)

您只需要将Data的前两个字节作为UInt16

var result: UInt16 = 0
_ = withUnsafeMutableBytes(of: &result) {characteristic.value!.copyBytes(to: $0, from: 0...1)}
print("\(result) degrees")

假设您的uint16格式 在Little-Endian和iOS中都使用,这在BLE特性中更为常见。

(当您获得Data中的第一个值时,不需要from: 0...1,但是您可能希望某些数据位于其他位置。)