如何在Android中将两个8位表示的字节转换为单个16位表示的整数值

时间:2016-06-15 09:14:44

标签: java android

我有一个带有BLE模块的Android应用程序。 BLE设备给出24字节的字节数组。每个字节都有不同的含义。在字节数组中,10和11项是电压,它是16位表示的组合。

例如:我得到11项为0和12项为3.所以我想将它转换为单个16位表示值。另外,我希望将其作为浮点值,因为我需要在UI中将电压显示为浮点值。我不知道有谁问过这个问题。如果有人知道8位到16位表示的公式,请添加公式。

2 个答案:

答案 0 :(得分:2)

试试这可能会对你有所帮助

short yourinteger16 = (short)(((bytes[0] & 0xFF) << 8) | (bytes[1] & 0xFF));

答案 1 :(得分:0)

short yourinteger16 = ((short) ((bytes[0] & 0xff) | (bytes[1] << 8)));

-已测试- 这是正数和负数的通用形式