最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

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

都說printHexByByteArray方法里面buf[i]要加一個(gè)&0xff,否則會(huì)輸出0ffffffa之類的字符,那么為什么第一個(gè)方法printHex里面的b不需要就能輸出正確呢

如題如題如題

正在回答

6 回答

簡(jiǎn)單點(diǎn)說,原來開辟空間之后輸入的buf是Byte型,只有8位。現(xiàn)在要用Integer.toHexString把int型轉(zhuǎn)化成字符型,這個(gè)函數(shù)括號(hào)里輸入的一定要是int型也就是32位;為了不發(fā)生錯(cuò)誤,就先用位與&把Byte型(只有8位)前面的24位全都變成0(比如:byte數(shù)據(jù)1011 1011&1111 1111 1111 1111....,按位運(yùn)算,高位不足補(bǔ)0,1&1=1,1&0=0,0&0=0)。打個(gè)比方就是:8個(gè)乒乓球(byte數(shù)據(jù))放到長(zhǎng)度為32的筒狀盒子(Integer)里,為了讓這8個(gè)球不亂晃并且剛好貼近開口方便拿(可以正確讀?。?,就把底部24個(gè)長(zhǎng)度用廢報(bào)紙(與0xff得到的高24位)塞上。有或者沒有&0xff看具體用什么數(shù)據(jù)類型,不是都要加的,“與ff”是數(shù)據(jù)存儲(chǔ)時(shí)把短數(shù)據(jù)變成長(zhǎng)數(shù)據(jù)的常用做法。

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

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

源碼里已經(jīng)進(jìn)行了&0xff操作

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

你肯定之前的沒看懂,老實(shí)說read讀取低8位,其余為補(bǔ)0,用Integer.toHexString()方法就不會(huì)輸出前面的0;相反去過在不知道其位的情況下,需要&0xff手動(dòng)將其余位清零。具體的你需要知道在計(jì)算機(jī)中任何數(shù)字都以反碼存放,去了解相關(guān)知識(shí)吧。

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

方法printHex是無符號(hào)讀取,所有的字節(jié)前面都是加24個(gè)零,這樣就不會(huì)出現(xiàn)

出0ffffffa之類的了


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

貌似那里放的是byte還是什么類型。一個(gè)byte就是8位(8bit),一個(gè)8位的長(zhǎng)度所以就能放完。但是int類型占用的是4個(gè)字節(jié),每個(gè)字節(jié)是8位,一共32位,所以要放4次,每次放8位。

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

因?yàn)榈谝粋€(gè)里面的放置的都是用8位就能表示完的數(shù)或者什么的,沒必要這樣做了。建議去看看微機(jī)原理,進(jìn)制和數(shù)據(jù)表示。

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

怎么看出來第一個(gè)里面的放置的都是用8位就能表示完的數(shù)?
2016-10-30 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

都說printHexByByteArray方法里面buf[i]要加一個(gè)&0xff,否則會(huì)輸出0ffffffa之類的字符,那么為什么第一個(gè)方法printHex里面的b不需要就能輸出正確呢

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

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

幫助反饋 APP下載

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

公眾號(hào)

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