十六进制字符串转换为字节数组
第一步、将十六进制的字符串除以二,算出字节数组的长度;
第二步、根据字节数组的长度,创建字节数组;
第三步、将字符串转换为字符数组;
第四步、将字符转换为字节;
第五步、十六进制的字节分为高四位与低四位,所以将高四位的字节左移4位,再与第四位的字节相或,就得到一个十六进制的字节;
第六步,将十六进制的字节逐个放到字节数组中即可。
public byte[] hexStrToBytes(String hexStr){int len = hexStr.length()/2;byte[] bytes = new byte[len];char[] chars = hexStr.toCharArray();for(int i=0;i<len;i++){bytes[i] = (toByte(chars[i])<<4) | toByte[i*2];}return bytes;
}public byte toByte(char c){byte b = "0123456789ABCDEF".indexOf(c);return b;
}
十六进制字符串转换为字节数组
第一步、将十六进制的字符串除以二,算出字节数组的长度;
第二步、根据字节数组的长度,创建字节数组;
第三步、将字符串转换为字符数组;
第四步、将字符转换为字节;
第五步、十六进制的字节分为高四位与低四位,所以将高四位的字节左移4位,再与第四位的字节相或,就得到一个十六进制的字节;
第六步,将十六进制的字节逐个放到字节数组中即可。
public byte[] hexStrToBytes(String hexStr){int len = hexStr.length()/2;byte[] bytes = new byte[len];char[] chars = hexStr.toCharArray();for(int i=0;i<len;i++){bytes[i] = (toByte(chars[i])<<4) | toByte[i*2];}return bytes;
}public byte toByte(char c){byte b = "0123456789ABCDEF".indexOf(c);return b;
}