標籤:-- out 異或 規則 異或運算 == 進位 一個 補碼
//與運算 & 規則 :都為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
* */
java中與運算,或運算,異或運算,取反運算