/**
* 将16进制字符串转换为byte[]
* @param str
* @return
*/
private static byte[] toBytes(String str) {
if(str == null || str.trim().equals("")) {
return new byte[0];
}
byte[] bytes = new byte[str.length() / 2];
for(int i = 0; i < str.length() / 2; i++) {
String subStr = str.substring(i * 2, i * 2 + 2);
bytes[i] = (byte) Integer.parseInt(subStr, 16);
}
return bytes;
}
/**
* 把byte[]中大于127的数还原,然后转为十六进制字符串
* @param n
* @return
*/
private static String intToHex(int n,byte b1) {
n = 0xff & b1;
StringBuffer s = new StringBuffer();
String a;
char []b = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
while(n != 0){
s = s.append(b[n%16]);
n = n/16;
}
a = s.reverse().toString();
return a;
}
/**
* 两个十六进制字符串转为十进制
* @param str1 高位字符串
* @param str2 低位字符串
* @return
*/
private static int comb(String str1,String str2){
return Integer.valueOf(str1+str2,16);
}