位運算子
阿新 • • 發佈:2020-07-09
1、&:與運算子
二進位制比較,都為1則為1,否則為0
0=非=false,1=是=true
& 類比 &&,當&&的所有條件都滿足是才為true,故推到出上述結果。
2、|:或運算子
二進位制比較,只要有一個為1就是1,否則為0
與&類似
3、~:非運算子
二進位制結果倒置,為0則1,1則0;
類比!
4、^:異或運算子
二進位制比較,相同為0,不同為1
類比!=
5、<<:左移運算子
二進位制,左移位數,低位補0
6、>>:右移運算子
二進位制,右移位數
值為正,高位補0
值為負,高位補1
7、>>>:右移運算子
二進位制,右移位數,無論正負高位都補0
1 public static void main(String[] args) throws InterruptedException { 2 // 11 1110 0111 3 System.out.println(Integer.toBinaryString(999)); 4 // 1111 1111 1111 1111 1111 1100 0001 1001 5 System.out.println(Integer.toBinaryString(-999)); 6 // 00 0001 1111 7 System.out.println(Integer.toBinaryString(999 >>> 5));8 // 0000 0111 1111 1111 1111 1111 1110 0000 9 System.out.println(Integer.toBinaryString(-999 >>> 5)); 10 // 1 1111 0011 1000 0000 11 System.out.println(Integer.toBinaryString(999 << 7)); 12 // 1111 1111 1111 1110 0000 1100 1000 0000 13 System.out.println(Integer.toBinaryString(-999 << 7)); 14// 0 0011 1110 0111 15 System.out.println(Integer.toBinaryString(999 >> 3)); 16 // 1111 1111 1111 1111 1111 1111 1000 0011 17 System.out.println(Integer.toBinaryString(-999 >> 3)); 18 }