補零后,輸出出現三位數
public?static?void?printHexByByteArray(String?fileName)?throws?IOException?{
FileInputStream?in=new?FileInputStream(fileName);
byte[]?buf=new?byte[1*1024];
int?b=in.read(buf,?0,?buf.length);
int?j=1;
for?(int?i?=?0;?i?<?b;?i++)?{
if?(buf[i]<=0xf)?{
System.out.print("0");
}
System.out.print(Integer.toHexString(buf[i]?&?0xff)+"?");
if(j++%10==0){
System.out.println();
}
}
in.close();
}
2016-02-29
把if的判斷條件再限制嚴格一點,改為?if(buf[i] <= 0xf && buf[i] >= 0x0) 出現3位的都是最高位為1的,被識別為有符號的負數,肯定小于0xf了