如何计算除校验和之外的所有字节的加法和?

Vid*_*Vid -1 java android

我有这个十六进制字符串 09F7F8048400000FFF8E。在这个字符串中的最后两个字节是 8E,是校验和。

我想知道如何计算除最后两个字节之外的所有字节的加法和?

简而言之,如果我计算 048400000FFF 的加法和,答案应该是 8E。请帮忙。

Vid*_*Vid 5

我已经以这种方式完成了这项工作,并且效果很好 :-)

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;
    }
Run Code Online (Sandbox Code Playgroud)