采用十六进制字节数组值并将其转换为十进制(BLE比例数据)

时间:2016-11-01 03:33:31

标签: java bluetooth-lowenergy

我有代码可以从蓝牙低能耗秤接收数据。

接收数据的格式为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编程的新手,所以如果我能获得一些示例代码以便理解这些概念,那就太棒了。

非常感谢。

1 个答案:

答案 0 :(得分:0)

假设传入的数据输入为byte[32]并保存到名为ble的数组中:

int weight = (ble[4] << 8) | ble[5];

请记住,Java数组以索引0开头,因此第一个元素是ble[0],而不是ble[1]。这就是为什么上面的代码使用数组元素4和5 - 它们实际上是数组的第5和第6个元素。