課程
/后端開發
/Java
/文件傳輸基礎——Java IO流
把編碼轉成十六進制的時候老師做了Integer.toHexString(b & 0xff),這個& 0xff是做什么用的?謝謝。
2016-12-14
源自:文件傳輸基礎——Java IO流 1-1
正在回答
b是byte類型占8位,而我們需要的int類型是32位,所以會進行符號位擴展。如果原來的byte為11111111,擴展后就會變為11111111 11111111 11111111 11111111,所以需要把前三位變為0,0xff二進制就是1111 1111,前三位都是0,所以與0xff相與后就只剩下最低的一位為1。
AngusHu 提問者
把前面的0去掉
舉報
為您介紹IO流的使用,以及對象的序列化和反序列化的內容
1 回答0xff什么意思?
8 回答為什么要用0xff呢
3 回答老師的System.out.print(Integer.toHexString(buf[i]&0xff)+" ");句中為什么要加0xff?
2 回答為什么要返回b.length 是什么意思呢
2 回答這一段是什么意思?為什么字節數組里面要放8*1024
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-12-14
b是byte類型占8位,而我們需要的int類型是32位,所以會進行符號位擴展。如果原來的byte為11111111,擴展后就會變為11111111 11111111 11111111 11111111,所以需要把前三位變為0,0xff二進制就是1111 1111,前三位都是0,所以與0xff相與后就只剩下最低的一位為1。
2016-12-14
把前面的0去掉