((byte) 128 & (byte) 128) == 128 ? (byte) 1 : (byte) 0;這個是bug修復前的,((byte) 128 & (byte) 128) == (byte)128 ? (byte) 1 : (byte) 0;,這個是bug修復后的。
1 回答

一只斗牛犬
TA貢獻1784條經驗 獲得超2個贊
不知道題主想問什么,尷尬。答案的話顯然就是1了。下面仔細解釋下自己對這行代碼的理解:
首先,計算機系統中數值編碼方式一律為補碼。
整型的128補碼為0000 0000 0000 0000 0000 0000 1000 0000,強制類型轉換為byte后為補碼:1000 0000,表示的是-128.
1000 000&1000 000顯然等于1000 000,也就是(byte)128,所以答案顯然是1.
public class my {
public static void main(String[] args){
byte i = (byte)128;
System.out.println(i); System.out.println(((byte) 128 & (byte) 128) == (byte)128 ? (byte) 1 : (byte) 0); }
}
添加回答
舉報
0/150
提交
取消