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