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

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

單個讀取和按數組讀取前面加0的顯示問題

printHex()

printHexByteByByte()

跟老師寫的是一樣的,為什么到第二個方法里的是否是一位數的判斷,

出來的結果是這樣的:

0d 0a 0a1 0a1 0a1 0a1 0bb 0ad 20 2d?

20 47 2e 45 2e 4d 2e 20 0b5 0cb?

0d7 0cf 0c6 0e5 0d 0a 0d 0a 0a1 0a1?

0a1 0a1 0b4 0ca 0a3 0ba 47 2e 45 2e?

4d 2e 20 0b5 0cb 0d7 0cf 0c6 0e5 0d?

0a 0d 0a 0a1 0a1 0a1 0a1 0c7 0fa 0a3?

0ba 47 2e 45 2e 4d 2e 20 0b5 0cb?

0d7 0cf 0c6 0e5 20?


正在回答

3 回答

f(buf[i]<=0xf)這句有問題的!這里buf[i]是byte類型,雖然比較的時候會自動變成int,但是如果它的最高位是1的話,它始終都是負數!只需要在判斷的時候再加上判斷為正即可if(buff[i] <= 0xf && buff[i] >= 0)

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

helloworld2008 提問者

非常感謝。!~
2016-07-26 回復 有任何疑惑可以回復我~

我的也是,不知道咋回事

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

helloworld2008 提問者

偶已經知道原因了, read()方法讀出來的是int類型的data【設為X】 read(buf,0,length)讀出來是byte類型的data【-128~127】 讀出來如果值為大于在這個范圍外的話,就無法顯示,只是顯示成了X-256,所以對我們的<0xf的判斷就會有問題。
2016-07-21 回復 有任何疑惑可以回復我~

System.out.println(Integer.toHexString(buf[i] & 0xff) + " ");是不是這句話有問題

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

舉報

0/150
提交
取消

單個讀取和按數組讀取前面加0的顯示問題

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

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

幫助反饋 APP下載

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

公眾號

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