日期:2014-05-20 浏览次数:20627 次
import java.util.Arrays;
public class ByteArrayToHex{
public static void main(String[] args){
byte[] result;
byte[] original = {0x66, 0x65, 0x66, 0x65, 0x66, 0x65, 0x36, 0x39};//字节数组中的数据,为16进制.
result = change(original);
System.out.println(Arrays.toString(result));//显示。
}
public static byte[] change(byte[] b){
byte[] out = new byte[b.length/2];//定义返回数组的大小。
byte h,l; //两个临时变量。
for(int i=0; i<b.length; i+=2){
if(b[i]>=97&&b[i]<=102){
h = (byte)(b[i]-97+10);//把高位的ascii码,转成其代表的字符。a-f
}else if(b[i]>=65 && b[i]<=69){
h = (byte)(b[i]-65+10);//A-F.
}else{
h = (byte)(b[i]-48);//0-9
}
h = (byte)(h<<4);//左移4位,放在高位。
if(b[i+1]>=97 && b[i+1]<=102){
l = (byte)(b[i+1]-97+10);//把低位的ascii码,转成其代表的字符或数字。a-f
}else if(b[i+1]>=65 && b[i+1]<=69){
l = (byte)(b[i+1]-65+10);//(A-F).
}else{
l = (byte)(b[i+1]-48);//0-9
}