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

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

11分22秒while((b=in.read())!=-1){System.out.print(integer.toHexString(b)+" ")}為什么b不進(jìn)行&0xff? b為int型

如題所示。

正在回答

4 回答

b這里可以不進(jìn)行&0xff,因?yàn)樵创a里已經(jīng)進(jìn)行了該操作,另外我們讀取的本身就是一個(gè)字節(jié),所以只取低八位不會改變原來的結(jié)果,只是輸出形態(tài)會有區(qū)別。

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

昵稱是JaVa 提問者

非常感謝!
2017-05-22 回復(fù) 有任何疑惑可以回復(fù)我~

- -終于看懂了。點(diǎn)開源碼看了下,read()單獨(dú)往int里讀的那個(gè),就是我們第一次寫的方法里,輸出的數(shù)已經(jīng)是&0xff 在源碼中進(jìn)行了這個(gè)操作,所以直接就可以轉(zhuǎn)換成16進(jìn)制輸出。還有前面補(bǔ)0的那個(gè)操作,當(dāng)小于或等于15時(shí)前面添加字符0,可以直接進(jìn)行。但是我再read(數(shù)組,起始位,長度)這個(gè)方法時(shí),出現(xiàn)問題,所以自己補(bǔ)了&0xff的操作,結(jié)果就一致了。。。更改了兩個(gè)地方。buf[i]&0xff)<=0xf 還有 ?Integer.toHexString(buf[i]&0xff)+" "

下面是源碼

public?int?read()?throws?IOException?{
????if?(eof)?{
????????return?-1;
????}
????temp?=?new?byte[1];
????int?n?=?read(temp,?0,?1);
????if?(n?<=?0)?{
????????return?-1;
????}
????return?temp[0]?&?0xff;
}


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

這兒我也覺得應(yīng)該進(jìn)行與操作啊,b是int型,不進(jìn)行與操作輸出就是32位的了。。但是看課程上好像沒有問題。

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

int類型數(shù)據(jù),4個(gè)字節(jié),如果有符號的整數(shù)且整數(shù)為負(fù)數(shù),那么最高為是為1的,如果只取低八位是不行的,值會改變,如果整數(shù)數(shù)值很小(底八位能夠表示)且高位符號位為0即整數(shù)為正整數(shù),可以這樣操作 ? ? ? 希望有幫助呢~

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

昵稱是JaVa 提問者

b=in.read()可知,int b由一個(gè)字節(jié)轉(zhuǎn)換而來,不可能是負(fù)數(shù)的吧。
2017-03-24 回復(fù) 有任何疑惑可以回復(fù)我~
#2

qq_頓首_0 回復(fù) 昵稱是JaVa 提問者

只是舉個(gè)例子,只取底八位可能改變值
2017-03-24 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

11分22秒while((b=in.read())!=-1){System.out.print(integer.toHexString(b)+" ")}為什么b不進(jìn)行&0xff? b為int型

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

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

幫助反饋 APP下載

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

公眾號

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