課程
/后端開發(fā)
/Java
/文件傳輸基礎(chǔ)——Java IO流
老師說每次讀取字節(jié)的時候讀取的是低八位的。那如果一個int變量,高八位不全是0,那讀出來的字節(jié)數(shù)據(jù)豈不是就是錯誤的了。
關(guān)于這個一直挺困惑,請大神解答。
2016-01-04
源自:文件傳輸基礎(chǔ)——Java IO流 4-2
正在回答
Java 中的一個byte,其范圍是-128~127的,如果不進(jìn)行&0xff,那么當(dāng)一個byte會轉(zhuǎn)換成int時,對于負(fù)數(shù),會做位擴(kuò)展,舉例來說,一個byte的-1(即0xff),會被轉(zhuǎn)換成int的-1(即0xffffffff ), 那么轉(zhuǎn)化出的結(jié)果就不是我們想要的了。?而0xff默認(rèn)是整形,所以,一個byte跟0xff相與會先將那個byte轉(zhuǎn)化成整形運算,結(jié)果的高24位就會被清0,這是我們想要的結(jié)果。
?看看這篇博客吧,http://makemyownlife.iteye.com/blog/1047717
很好的解答了你的問題。希望能幫到你。
春暖不開花 提問者
Its_forever 回復(fù) 春暖不開花 提問者
每次讀低八位,并不代表剩下的不讀啊。
舉報
為您介紹IO流的使用,以及對象的序列化和反序列化的內(nèi)容
1 回答關(guān)于讀取的字節(jié)數(shù)組問題
3 回答關(guān)于讀取字節(jié)數(shù)組
2 回答關(guān)于字節(jié)數(shù)組讀取文件
2 回答關(guān)于讀3個字節(jié)存放的到int兩個字節(jié)的問題
2 回答關(guān)于的字節(jié)問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-01-04
Java 中的一個byte,其范圍是-128~127的,如果不進(jìn)行&0xff,那么當(dāng)一個byte會轉(zhuǎn)換成int時,對于負(fù)數(shù),會做位擴(kuò)展,舉例來說,一個byte的-1(即0xff),會被轉(zhuǎn)換成int的-1(即0xffffffff ), 那么轉(zhuǎn)化出的結(jié)果就不是我們想要的了。?
而0xff默認(rèn)是整形,所以,一個byte跟0xff相與會先將那個byte轉(zhuǎn)化成整形運算,結(jié)果的高24位就會被清0,這是我們想要的結(jié)果。
?看看這篇博客吧,http://makemyownlife.iteye.com/blog/1047717
很好的解答了你的問題。希望能幫到你。
2016-01-04
每次讀低八位,并不代表剩下的不讀啊。