[問題] 關於x&y的運作
最近在工作上有用到位元的& 和 or的運算
發現結果與我認知中有寫落差
------以下範例------
public class test {
public static void main(String args[]) throws IOException{
byte t = (byte) 0b10000000;
byte y = (byte) ((t & 0b000000000000000100000000)>>1);
System.out.println(y);
System.out.println(t);
}
}
輸出為:
128
-128
但是若改成
public class test {
public static void main(String args[]) throws IOException{
byte t = (byte) 0b01000000;
byte y = (byte) ((t & 0b000000000000000100000000)>>1);
System.out.println(y);
System.out.println(t);
}
}
輸出就是
0
64
---------問題--------
我以為不足的bit會用補上
但一個範例碼讓我完全不懂會變成這樣
而且如果我把t變數改成long型態
輸出就會變成
0
128
還請大大們解惑謝謝Orz
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.181.86
※ 文章網址: https://www.ptt.cc/bbs/java/M.1499656453.A.8F6.html
推
07/10 18:10, , 1F
07/10 18:10, 1F
→
07/10 18:10, , 2F
07/10 18:10, 2F
java 近期熱門文章
PTT數位生活區 即時熱門文章