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

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

0xff有關(guān)的與運算

byte型數(shù)據(jù)(比如-14)和0xff進行與運算,會改變它的正負號嗎?

正在回答

2 回答

byte---字節(jié)類型,即一個字節(jié),占8位,最高位為符號位,“0”表示正,“1”表示負,其余位表示數(shù)值的大小。

Java中用補碼表示二進制數(shù),補碼的最高位是符號位,最高位為“0”表示正數(shù),最高位為“1”表示負數(shù)。

正數(shù)補碼為其本身;
負數(shù)補碼為其絕對值各位取反加1;

(-14),按照概念其絕對值為0000 1110,各位取反為1111 0001,再加1為1111 0010,即(-14)的二進制表示形式為11110010。

1111 0010 & 0xff,與運算后結(jié)果為1111 0010,結(jié)果還是(-14),所以不改變其正負號。

????


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

好像不對啊,我測試了一下,申明一個byte類型的數(shù)-14,輸出它與0xff與運算的結(jié)果,不是-14,而是242

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

袁初

打印輸出為242,我覺得你可能使用下面的輸出語句: System.out.println(a & 0xff);//結(jié)果為242 System.out.println(Integer.parseInt("11110010", 2));//結(jié)果為242 System.out.println(Integer.valueOf("11110010",2));//結(jié)果為242
2017-04-28 回復(fù) 有任何疑惑可以回復(fù)我~
#2

袁初

如果是這樣,我覺得不妥,因為Java中是用補碼表示二進制數(shù),所以(-14)&0xff得到的結(jié)果(1111 0010)是二進制的補碼,而不是(-14)的二進制表示形式,如果直接輸出得到的僅是二進制(1111 0010)轉(zhuǎn)化為十進制后的數(shù),即242,轉(zhuǎn)化時忽略了最高是符號位; 從另一種角度理解:這里涉及的0xff與操作,僅僅是為了簡化IO流的輸出顯示,而不應(yīng)該改變原來的文件內(nèi)容。
2017-04-28 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
文件傳輸基礎(chǔ)——Java IO流
  • 參與學(xué)習(xí)       133811    人
  • 解答問題       1058    個

為您介紹IO流的使用,以及對象的序列化和反序列化的內(nèi)容

進入課程

0xff有關(guān)的與運算

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

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

幫助反饋 APP下載

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

公眾號

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