package tools; import java.math.BigInteger; public class Jiaoyan { /**获取校验码除去包头相加取反*/ public static byte[] check(byte[] byt) { //字节数组转为16进制字符串/2后的长度 int size=BinaryToHexString2(byt).length()/2; String[] hex=hex(BinaryToHexString2(byt)); //求和 int sum=0; for(int i=0;i> 4)); hex += String.valueOf(hexStr.charAt(b & 0x0F)); result += hex + ""; } return result; } /** * 16进制表示的字符串转换为字节数组 * * @param hexString 16进制表示的字符串 * @return byte[] 字节数组 */ public static byte[] hexStringToByteArray(String hexString) { hexString = hexString.replaceAll(" ", ""); int len = hexString.length(); byte[] bytes = new byte[len / 2]; for (int i = 0; i < len; i += 2) { // 两位一组,表示一个字节,把这样表示的16进制字符串,还原成一个字节 bytes[i / 2] = (byte) ((Character.digit(hexString.charAt(i), 16) << 4) + Character .digit(hexString.charAt(i+1), 16)); } return bytes; } }