版權聲明一:本文爲博主原創文章,轉載請附上原文出處連接和本聲明。
版權聲明二:本網站的全部做品會及時更新,歡迎你們閱讀後發表評論,以利做品的完善。
版權聲明三:對不遵照本聲明或其餘違法、惡意使用本網內容者,保留追究其法律責任的權利。
本文連接:https://segmentfault.com/writ...html
public static void main(String args[]) { System.out.println( 7 & 9); /* * 7的二進制 * 7/2=3...1 * 3/2=1...1 * 1/2=0...1 * 直到商爲0,將餘數倒過來就是111 * 因而得數是111 */ /* * 9的二進制 * 9/2=4...1 * 4/2=2...0 * 2/2=1...0 * 1/2=0...1 * 因而得數是1001 */ /* * 7二進制 0111 * 9二進制 1001 * ------------ * 0001 ==1 */ }
public static void main(String args[]){ System.out.println(7 | 9); /* * 7二進制 0111 * 9二進制 1001 * ----------- * 1111 == 15 * */ }
public static void main(String args[]){ System.out.println( 7 ^ 9); /* * 7二進制 0111 * 9二進制 1001 * ------------ * 1110 == 14 * */ }
按位取反運算符「~」的原理:是將內存中的補碼按位取反(包括符號位)。segmentfault
package test2; public class CeshiQuFan { public static void main(String args[]){ System.out.println(~7);//正數 /* * 7二進制 0000 0000 0000 0000 0000 0000 0000 0111 * 0000 0000 0000 0000 0000 0000 0000 0111 反碼 * 0000 0000 0000 0000 0000 0000 0000 0111 補碼 * 1000 0000 0000 0000 0000 0000 0000 1000 獲得正數的補碼以後進行取反 (這時獲得的是負數)符號位爲: 1 * 因此~7的值爲:-8 */ } }
package test2; public class CeshiQuFan { public static void main(String args[]){ System.out.println(~-1);//負數 /* * -1二進制 1000 0000 0000 0000 0000 0000 0000 0001 * 1000 0000 0000 0000 0000 0000 0000 1110 反碼(負數的反碼是:符號位爲1,其他各位求反,但末位不加1。) * 1000 0000 0000 0000 0000 0000 0000 1111 補碼(負數的補碼是:符號位不變,其他各位求反,末位加1 。) * 0000 0000 0000 0000 0000 0000 0000 0000 獲得負數的補碼以後進行取反 (這時獲得的是正數) 符號位爲: 0 * 因此~-1的值爲:0 */ } }
我是阿康同窗,在北京奮鬥的Java軟件工程師。
愛生活;愛攝影;愛籃球,喜歡曼巴精神。
人生格言:「認真洗臉,多讀書按時睡,少食多餐繼續善良保持愛。」
下面的是個人公衆號二維碼圖片,歡迎關注。
網站
文章處1spa