亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

我的補0判斷哪里出了問題呢?

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();

? ? }

? ? }

輸出結果是這樣的

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


正在回答

3 回答

補0判斷不嚴謹,如果有中文的話會出現負值

if (buf[j]<=0xf&&buf[j]>=0) {

System.out.print(0);

}


0 回復 有任何疑惑可以回復我~

你把上面的判斷添加buf[i]<=0xf;改成(buf[i]& 0xff)<=0xf

0 回復 有任何疑惑可以回復我~

你的補0判斷沒有問題,只不過是因為你的讀取文件中,包含了中文,而中文在字節數組中保存的數值是負值,

?if(buf[i]<=0xf){

? ? System.out.print("0");

? ? }

所以但凡是中文 都會經由此補上0,而且看你輸出的全是3位補0,應該是全文字內容,你再加入一點字母數字,就會發現有3位和兩位并存的現象

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

我的補0判斷哪里出了問題呢?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號