Kotlin Android Studio 如何将两个 uint8 合并为一个 uint16

Kotlin Android Studio how to merge two uint8 to one uint16

提问人:NIXIE_123 提问时间:1/12/2023 最后编辑:NIXIE_123 更新时间:1/27/2023 访问量:129

问:

我正在读取蓝牙 gatt 特性的数据。第一个数据是一个字节,我通过代码成功读取了它:

val strValue = characteristic.value[0].toUByte()

characteristic.value[1] 包含 UInt16 的最高有效字节

characteristic.value[2] 包含 UInt16 的最低有效字节

我想做的是获取uint16并将其放入strValue中。

我尝试使用shl函数,但它给我带来了这个错误:IMAGE1

我也试过这个:IMAGE2

如何在 Kotlin 中正确执行此操作?我擅长 C,但 Kotlin 对我来说是新的。

Kotlin 位移 UInt16

评论

1赞 Tenfour04 1/12/2023
在通话前插入通话。用于组合数字。uint16 是 Kotlin 中的一个。toInt()shlorUShortval strValue = (characteristic.value[1].toInt().shl(8) or characteristic.value[2].toInt()).toUShort()
0赞 gidds 1/12/2023
请不要上传代码/数据/错误的图像。
0赞 NIXIE_123 1/19/2023
它几乎起作用了。有一个问题:123 124 125 126 127 65408 65409 65410

答:

0赞 NIXIE_123 1/27/2023 #1

溶液:

val strValue :UShort = (characteristic.getIntValue(FORMAT_UINT16,1) or characteristic.getIntValue(FORMAT_UINT16,2).shl(8)).toUShort()