【发布时间】:2016-10-28 18:50:21
【问题描述】:
我从 BLE 设备以字节数组(小端序)的形式返回数据,并且能够让它在下面的代码中运行。但是我很好奇有没有办法以更干净的方式编写这段代码:
int val = (Integer.parseInt(String.format("%02x", data[3]), 16) << 24) |
(Integer.parseInt(String.format("%02x", data[2]), 16) << 16 ) |
(Integer.parseInt(String.format("%02x", data[1]), 16) << 8) |
(Integer.parseInt(String.format("%02x", data[0]), 16)) << 0;
这里返回的数据打印为十六进制:
data[0] = 0
data[1] = 0
data[2] = 8
data[3] = 9f
最终的 int 值应该是 2207。
【问题讨论】:
标签: java byte endianness