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

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

單字節讀取時Integer.toHexString(b) 批量讀取時Integer.toHexString(buf[i]&0xff)

為什么單字節讀取不用&0xff?? 批量讀取時卻要用呢?? 不明白? 求解

正在回答

4 回答

是這樣的,

單字節讀取時Integer.toHexString(b)

read 是無符號讀取的,就是讀取的時候,假如讀取的是一個字節 例如 11111111 ?b的值就是 00000000 00000000

00000000 11111111;

批量讀取時Integer.toHexString(buf[i]&0xff) 這個函數的參數是int類型的

buf 是一個字節數組。 假如buf[1]=11111111, 這個 會提升為 11111111 11111111 11111111 11111111,

這樣兩個int的字節碼就不同了

buf[1]&0xff (00000000 00000000 00000000 11111111) 這樣就一致了

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

昵稱是JaVa

為什么buf[1]=11111111, 這個 會提升為 11111111 11111111 11111111 11111111,而不是00000000 00000000 00000000 11111111。什么時候前面補0,什么時候前面會補1?。?/div>
2017-05-25 回復 有任何疑惑可以回復我~

因為每次讀取僅僅讀取一個字節也就是8位,而單字節就只有8位不需要&0xff,然而批量讀取時就需要先讀取低八位,再讀取高8位

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

Java中一個字節是八位么???

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

單字節說明就只有8位,就直接是低八位了呀!就不需要&0xff了啊

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

舉報

0/150
提交
取消

單字節讀取時Integer.toHexString(b) 批量讀取時Integer.toHexString(buf[i]&0xff)

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

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

幫助反饋 APP下載

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

公眾號

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