課程
/后端開發
/Java
/文件傳輸基礎——Java IO流
byte型數據(比如-14)和0xff進行與運算,會改變它的正負號嗎?
2017-04-27
源自:文件傳輸基礎——Java IO流 4-2
正在回答
byte---字節類型,即一個字節,占8位,最高位為符號位,“0”表示正,“1”表示負,其余位表示數值的大小。
Java中用補碼表示二進制數,補碼的最高位是符號位,最高位為“0”表示正數,最高位為“1”表示負數。
正數補碼為其本身;負數補碼為其絕對值各位取反加1;
(-14),按照概念其絕對值為0000 1110,各位取反為1111 0001,再加1為1111 0010,即(-14)的二進制表示形式為11110010。
1111 0010 & 0xff,與運算后結果為1111 0010,結果還是(-14),所以不改變其正負號。
????
好像不對啊,我測試了一下,申明一個byte類型的數-14,輸出它與0xff與運算的結果,不是-14,而是242
袁初
舉報
為您介紹IO流的使用,以及對象的序列化和反序列化的內容
2 回答不和0xff想與,結果有問題啊
1 回答請問關于0xff的問題
2 回答0xff的問題
3 回答為什么位與0xff后能去掉前面的0
1 回答0xff的作用
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-04-28
byte---字節類型,即一個字節,占8位,最高位為符號位,“0”表示正,“1”表示負,其余位表示數值的大小。
Java中用補碼表示二進制數,補碼的最高位是符號位,最高位為“0”表示正數,最高位為“1”表示負數。
正數補碼為其本身;
負數補碼為其絕對值各位取反加1;
(-14),按照概念其絕對值為0000 1110,各位取反為1111 0001,再加1為1111 0010,即(-14)的二進制表示形式為11110010。
1111 0010 & 0xff,與運算后結果為1111 0010,結果還是(-14),所以不改變其正負號。
????
2017-04-28
好像不對啊,我測試了一下,申明一個byte類型的數-14,輸出它與0xff與運算的結果,不是-14,而是242