public class To_Hex
{//将字节数组转化为16进制的字符串
public static String toHex(byte[] buffer){
StringBuffer sb = new StringBuffer(buffer.length * 2);
for (int i = 0; i < buffer.length; i++){
sb.append(Character.forDigit((buffer[i] & 0xf0) >> 4, 16));
sb.append(Character.forDigit(buffer[i] & 0x0f, 16));
}
return sb.toString();
}
}在下不知道:sb.append(Character.forDigit((buffer[i] & 0xf0) >> 4, 16));
sb.append(Character.forDigit(buffer[i] & 0x0f, 16));
这两句是什么意思?
取高半字节右移4位 转化为16进制
取低半字节 转化为16进制其中注意forDigit方法的参数限制
0 <= digit < radix
Character.forDigit((buffer[i] & 0xf0) >> 4, 16)将其转换为16进制
StringBuilder strBuild = new StringBuilder();
for(int i=0; i<bts.length; i++){
strBuild.append(Integer.toHexString(bts[i]&0xFF));
}
return strBuild.toString();
}