/**
* 字节数组转为相应16进制数的字符串
* @param b 字节数组
* @return 16进制数字的字符串
*/
public static String byteToHexString( byte[] b) {
if(b==null)
return "";
StringBuilder str=new StringBuilder();
for (byte temp:b) {
String hex = Integer.toHexString(0x00ff & temp);
if (hex.length() == 1) {
hex = '0' + hex;
}
str.append(hex);
}
return str.toString();
}
/**
* 16进制数的字符串转为字节数组
* @param str 16进制数字的字符串,长度必须为偶数
* @return 字节数组
*/
public static byte[] hexStringToByte(String str) {
byte[] b=new byte[str.length()/2];
char[] ch=str.toCharArray();
for(int i=0;i<b.length;i++){
if(ch[i*2]>=48&&ch[i*2]<=57){
ch[i*2]-=48;
}else
ch[i*2]-=87;
b[i]=(byte)(0x000f & ch[i*2]);
b[i]<<=4;
if(ch[i*2+1]>=48&&ch[i*2+1]<=57){
ch[i*2+1]-=48;
}else
ch[i*2+1]-=87;
b[i]|=(byte)(0x000f & ch[i*2+1]);
}
return b;
}
字节数组、16进制数的字符串的相互转换
最新推荐文章于 2020-12-26 11:11:14 发布