我的補(bǔ)0判斷哪里出了問(wèn)題呢?
for(int i=0;i<bytes;i++){
? ?
? ? if(buf[i]<=0xf){
? ? System.out.print("0");
? ? }
? ? System.out.print(Integer.toHexString(buf[i] & 0xff)+" ");
? ? if(j++%10==0){
? ? System.out.println();
? ? }
? ? }
輸出結(jié)果是這樣的
0f7 0bc 0fc 0d2 0d4 0cd 0e2 0b5 0c4 0c6?
0e4 0cb 0fb 0c1 0d0 0b6 0bc 0b2 0bb 0b4?
0ab 0b5 0dd 0d2 0c0 0c0 0b5 0d3 0da 0d6?
0f7 0bc 0fc 0c1 0d0 0a3 0ac 0d4 0f2 0c2?
0fa 0d7 0e3 0b5 0da 0c8 0fd 0b7 0b6 0ca?
0bd 0a1 0a3
2020-05-26
補(bǔ)0判斷不嚴(yán)謹(jǐn),如果有中文的話會(huì)出現(xiàn)負(fù)值
if (buf[j]<=0xf&&buf[j]>=0) {
System.out.print(0);
}
2020-03-17
你把上面的判斷添加buf[i]<=0xf;改成(buf[i]& 0xff)<=0xf
2019-11-05
你的補(bǔ)0判斷沒(méi)有問(wèn)題,只不過(guò)是因?yàn)槟愕淖x取文件中,包含了中文,而中文在字節(jié)數(shù)組中保存的數(shù)值是負(fù)值,
?if(buf[i]<=0xf){
? ? System.out.print("0");
? ? }
所以但凡是中文 都會(huì)經(jīng)由此補(bǔ)上0,而且看你輸出的全是3位補(bǔ)0,應(yīng)該是全文字內(nèi)容,你再加入一點(diǎn)字母數(shù)字,就會(huì)發(fā)現(xiàn)有3位和兩位并存的現(xiàn)象