第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

b已經(jīng)是8位byte類型,為什么要用0xff來去掉前面的24位呢?

59b1fce8000157f612800720.jpg

哪句話是將b(byte類型)轉(zhuǎn)換成int類型的. Integer.toHexString(b&0xff)? 中, 括號里的b難道不是優(yōu)先運算嗎,這時候應(yīng)該還是byte類型的吧,所有何來的必要將前面(按我的理解并不存在的)的24位去除呢,求大神指點,謝謝

正在回答

2 回答

個人理解在for循環(huán)的時候把byte元素傳到Integer.toHexString(b&0xff)的時候byte會自動轉(zhuǎn)型成int類型,由于int類型是32位然后& 0xff 就是把前面24個0去掉只要低8位,最后打印出來的就是只保留低8位的形式

1 回復(fù) 有任何疑惑可以回復(fù)我~

這是byte轉(zhuǎn)化integer時出現(xiàn)的問題(因為用的是integer的方法),因為byte在java中是有正負的整數(shù),所以轉(zhuǎn)為integer是也是相應(yīng)的整數(shù),integer存儲大小為4個字節(jié),而byte為一個字節(jié),存在相應(yīng)擴展,負數(shù)是補碼存儲,所以是前面添1,正數(shù)是原碼存儲所以添0,最后轉(zhuǎn)化為16進制數(shù),前面的0省略,而1不能省略,所以通過&0xff取后八位有效位

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

b已經(jīng)是8位byte類型,為什么要用0xff來去掉前面的24位呢?

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號