十六进制字符串转换为byte
public static byte[] hex2byte(String hex) {
String digital = "0123456789ABCDEF";
String hex1 = hex.replace(" ", "");
char[] hex2char = hex1.toCharArray();
byte[] bytes = new byte[hex1.length() / 2];
byte temp;
for (int p = 0; p < bytes.length; p++) {
temp = (byte) (digital.indexOf(hex2char[2 * p]) * 16);
temp += digital.indexOf(hex2char[2 * p + 1]);
bytes[p] = (byte) (temp & 0xff);
}
return bytes;
}
byte转换为十六进制字符串
public String printHexString( byte[] b,int length) {
String info="";
for (int i = 0; i < length; i++) {
String hex = Integer.toHexString(b[i] & 0xFF);
if (hex.length() == 1) {
hex = '0' + hex + ",";
}else {
hex += ",";
}
info+=hex.toUpperCase();
}
return info;
}
int转换为十六进制
int i = 100;
Integer.toHexString(i);
十六进制转换为int
int value = Integer.parseInt(hex,16);//hex为十六进制串