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

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

在讀取16進(jìn)制數(shù) 0x7fffffff時(shí),buf[i]的值為-1,為什么

byte[]?buf?=?new?byte[8?*?1024];
int?bytes?=?in.read(buf,0,buf.length);
int?j=1;
for?(int?i?=?0;?i?<?bytes;?i++){
????if?((buf[i]?&?0xff)?<=?0xf){????????????????????//此處?如果沒(méi)有進(jìn)行與運(yùn)算,直接打印buf[i]結(jié)果為-1
????????System.out.print("0");
????}
????System.out.print(Integer.toHexString(buf[i]?&?0xff)+"?");
????if(j++?%?10?==?0){
????????System.out.println();
????}
}

文件的內(nèi)容為 A B?0x7fffffff?

正在回答

1 回答

問(wèn)題和代碼無(wú)關(guān),你只要輸出System.out.println(0xffffffff)就會(huì)得到-1;原因是int 是有符號(hào)位,占4個(gè)字節(jié),而0xffffffff是以int類型存儲(chǔ)的,int是有符號(hào)的。即1111 1111 1111.......第一位被用來(lái)記錄符號(hào),所以這里就被解釋為負(fù)號(hào)了,而Java在編碼時(shí),存儲(chǔ)的是負(fù)數(shù)的補(bǔ)碼,所以你的1111.....就成了1000......+1就是10000.....1就是-1啦。

所以16進(jìn)制最大的數(shù)是0x7fffffff.

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

恒10769 提問(wèn)者

懂了,感謝
2018-07-19 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

在讀取16進(jìn)制數(shù) 0x7fffffff時(shí),buf[i]的值為-1,為什么

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

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

幫助反饋 APP下載

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

公眾號(hào)

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