我有这个十六进制字符串09F7F8048400000FFF8E。在这个字符串中,最后两个字节是8E,是校验和。
我想知道如何计算除最后两个字节之外的所有字节的加法和?
简而言之,如果我计算048400000FFF的附加和,答案应该是8E。请帮忙。
答案 0 :(得分:3)
我已经用这种方式完成了它,它的工作方式就像哇: - )
public static void main(String[] args) {
int checkSum = 0;
byte [] bytes = hexStringToByteArray("09F7F8008100000FFF");
for(byte b : bytes){
checkSum += (0xff & b);
}
String checkSumHex = Integer.toHexString(checkSum & 0xFF);
System.out.println("Checksum is: "+ checkSumHex);
}
private static byte[] hexStringToByteArray(String s) {
int len = s.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
+ Character.digit(s.charAt(i+1), 16));
}
return data;
}