CheckNumUtils.java 891 B

1234567891011121314151617181920212223242526272829
  1. package com.gzlh.device.electron.utils;
  2. import cn.hutool.core.util.HexUtil;
  3. public class CheckNumUtils {
  4. public static String calculateChecksum(byte[] uBuff, int uBuffLen) {
  5. int uSum = 0;
  6. for (int i = 0; i < uBuffLen; i++) {
  7. uSum = uSum + (uBuff[i] & 0xFF);
  8. }
  9. uSum = (~uSum) + 1;
  10. return HexUtil.toHex(uSum & 0xFF);
  11. }
  12. public static byte[] hexStringToByteArray(String s) {
  13. int len = s.length();
  14. byte[] data = new byte[len / 2];
  15. for (int i = 0; i < len; i += 2) {
  16. data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
  17. + Character.digit(s.charAt(i + 1), 16));
  18. }
  19. return data;
  20. }
  21. public static String calculateChecksum(String s){
  22. byte[]array= hexStringToByteArray(s);
  23. return calculateChecksum(array,array.length);
  24. }
  25. }