private boolean[] dataDispose(byte[] response, Integer number) {
System.out.println(Arrays.toString(response));
boolean[] result = new boolean[number];
for (int i = 0; i < response[8]; i++) { //循环解析结果,共有response[8]个数据,循环9次
result[i * 8] = (response[9 + i] & 0x01) == 0x01;//将结果从解析结果[0]解析结果[71]个开关量
result[i * 8 + 1] = (response[9 + i] & 0x02) == 0x02 ? true : false;
result[i * 8 + 2] = (response[9 + i] & 0x04) == 0x04 ? true : false;
result[i * 8 + 3] = (response[9 + i] & 0x08) == 0x08 ? true : false;
result[i * 8 + 4] = (response[9 + i] & 0x10) == 0x10 ? true : false;
result[i * 8 + 5] = (response[9 + i] & 0x20) == 0x20 ? true : false;
result[i * 8 + 6] = (response[9 + i] & 0x40) == 0x40 ? true : false;
result[i * 8 + 7] = (response[9 + i] & 0x80) == 0x80 ? true : false;
}
return result;
}
按位解析二进制转true或false
于 2020-09-25 16:13:05 首次发布