//與運算 & 規則 :都為1時才為1
System.out.println( 7 & 9);
/*
* 7二進制 0111
* 9二進制 1001
* -----------
* 0001 ==1
* */
//或運算 | 規則:有一個為1,則為1
System.out.println(7 | 9);
/*
* 7二進制 0111
* 9二進制 1001
* ----------
* 1111 == 15
* */
//異或運算 ^ 規則:不同為1
System.out.println( 7 ^ 9);
/*
* 7二進制 0111
* 9二進制 1001
* ----------
* 1110 == 14
*
* */
//取反運算 ~ 規則:按位取反
System.out.println( ~7);//正數
/*
* 7二進制 0000 0000 0000 0000 0000 0000 0000 0111
* 1111 1111 1111 1111 1111 1111 1111 1000 取反之后變成負數了
* 1000 0000 0000 0000 0000 0000 0000 0111 補碼
* 1000 0000 0000 0000 0000 0000 0000 1000 原碼 == -8
*
* */
System.out.println(~-7);
/*
* 7二進制 1000 0000 0000 0000 0000 0000 0000 0111
* 1111 1111 1111 1111 1111 1111 1111 1000 負數先轉成補碼
* 1111 1111 1111 1111 1111 1111 1111 1001 補碼
* 0000 0000 0000 0000 0000 0000 0000 0110 得到負數的補碼之后進行取反 (這時得到的是正數) 6
* */
