我有代码可以从蓝牙低能耗秤接收数据。
接收数据的格式为32字节数组。
例如,当我站在秤上时,它会发出:
<00> 00 00 00 00 02 02 00 00 00 00 00 00 00 00 00 00如果重量数据位于字节5和6上。如果转换字节5和6的十六进制值,那么在该示例中为'0202',它将变为小数为514。
乘以0.1,你得到的重量为51.4kg。
我的问题是,如何在字节5和字节中取出十六进制字节数组值? 6并将其转换为十进制?
我是Java编程的新手,所以如果我能获得一些示例代码以便理解这些概念,那就太棒了。
非常感谢。
答案 0 :(得分:0)
假设传入的数据输入为byte[32]
并保存到名为ble
的数组中:
int weight = (ble[4] << 8) | ble[5];
请记住,Java数组以索引0开头,因此第一个元素是ble[0]
,而不是ble[1]
。这就是为什么上面的代码使用数组元素4和5 - 它们实际上是数组的第5和第6个元素。