这里用于计算锁控制器的命令
import java.util.ArrayList;
import java.util.List;
public class LockCommandCalculation {
public static void main(String[] args) {
List<String[]> datas = new ArrayList<>();
for (int i = 1; i <= 24; i++) {
String[] chars = {"0x8a", "0x01", "0x01", "0x11"};
// 十进制转十六进制
String hexStr = "0x" + (Integer.toHexString(i).length() == 1 ? "0" + Integer.toHexString(i) : Integer.toHexString(i));
chars[2] = hexStr;
datas.add(chars);
}
for (String[] data : datas) {
int result = Integer.parseInt(data[0].substring(2), 16);
for (int i = 0; i < data.length - 1; i++) {
result = result ^ Integer.parseInt(data[i + 1].substring(2), 16);
}
StringBuffer stringBuffer = new StringBuffer();
for (String hex : data) {
stringBuffer.append(hex.substring(2).toUpperCase()).append(" ");
}
stringBuffer.append(Integer.toHexString(result).toUpperCase());
System.out.println(stringBuffer);
}
}
}
计算结果:
命令解释: