亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

為什么要用0xff呢

http://img1.sycdn.imooc.com//59b1fcb90001ab8406370165.jpg

代碼中,為什么要用b&0xff去掉前面的24個0呢?b是byte類型,本身就只有8位啊


正在回答

6 回答

我也沒明白,感覺他們的回答沒有理解你的意思,是說b是byte類型的什么時候轉換成int類型的了,既然已經是byte類型只有8位那為什么要進行去掉前面24位的操作呢

0 回復 有任何疑惑可以回復我~

正如你所說,byte只有8位,然后int有32位,所以byte轉換為int,int的前面24位是無意義的(就是跟轉換過來的值無關),所以0xff=0000 0000 0000 0000 0000 0000 1111 1111 & b可以保留后8位的數值,前面24位不管是0還是1都會為0不顯示。

2 回復 有任何疑惑可以回復我~

因為Integer.toHexString()方法,此方法返回的字符串表示的無符號整數參數所表示的值以十六進制(基數為16)。謝謝

1 回復 有任何疑惑可以回復我~

將byte轉換為int 高24位會補1 0xff的二進制表示是11111111 高二十四位補0 所以0&1為0 這樣就去掉了int的高24位的字節

?


0 回復 有任何疑惑可以回復我~

你試試不加。就有可能變成:ffffffc4

正如你所說,byte只有8位,我們也只需要用到8位

加上0xff就可以把后面2位(即8位)留下c4,前面補0


0 回復 有任何疑惑可以回復我~

為了只截取后面8位。

0 回復 有任何疑惑可以回復我~
#1

16k閃存大腦3954634 提問者

byte不是本身就只有8位嗎
2017-09-08 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么要用0xff呢

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號