Java_按位與&,按位或,取反,左移,右移運算符


//按位與運算& System.out.println(0&0);//0 System.out.println(0&1);//0 System.out.println(1&1);//1 System.out.println("==========="); //按位或運算符| System.out.println(0|0);//0 System.out.println(0|1);//1 System.out.println(1|1);//1 System.out.println("==========="); //異或運算符^ System.out.println(0^0);//0 System.out.println(0^1);//1 System.out.println(1^1);//0 System.out.println("==========="); //取反運算符~ //部分要點: //什么是取反:取反就是0=>1 1=>0 //什么是補碼:正數的補碼是其反碼,負數的補碼為其反碼+1,例5的二進制為0 0101,而0 0101的補碼是1 1010,-5的二進制是1 0101,而1 0101的補碼是1 1011 //什么是原碼:規定正數的補碼與原碼相同,負數的原碼是其反碼+1 //--------------------------------------------------------- //6為正數,二進制為 0 0110 (第一個0代表正負) //然后計算補碼,即1 1001 //求原碼,對后4位進行按位取反,即 1 0110 //然后對二進制進行補碼+1操作,即 1 0111 //1010轉成十進制為7,加上前面的負號,得-7 //如6為正數,其二進制為110,取反后為001,補碼右邊+1為1010,原來6為正,取反為負,得-2 //---------------------------------------------------------- System.out.println(~6);//-7 System.out.println(~42);//-43 System.out.println("==========="); //左移運算符<<(即向左移動,右邊補0) //如2的二進制為10,若2<<2,則1000,也就是十進制8,同理若2<<3,則10000,也就是十進制16,根據規律可以看出n<<m=n*(2^m) System.out.println(15<<2);//60: 15*(2^2) //右移有符號運算符>>(即向右移動,但左邊補0還是1需要看原來的數是正的還是負的) System.out.println(2>>2); //0(右邊移除的數將被丟棄) System.out.println(-8>>3); //-1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM