JAVA 位運算符和位移運算符

java位運算符包括 
&(與)       AND 
|(或)       OR 
^(異或)     XOR 
~(非)       NOT 

位移運算符包括 
>>(右移) 
<<(左移) 
>>>(右移,左邊空出的位以0填充) 
顧名思義,位運算符用於位運算,那就只能對整型或者字符型進行運算。而除了~(非)是一元運算符以外其餘的都爲二元運算符。 

全部位運算都會把值轉爲二進制進行運算 

&(與) 
  運算規則:0&0=0   0&1=0  1&0=0   1&1=1 
  即:兩位同時爲1時,結果爲1,不然爲0 

  javascript

Java代碼 java

 收藏代碼

  1. int a=(3&5);  
  2. System.out.println(a);  
  3. System.out.println(Integer.toBinaryString(3));   
  4. System.out.println(Integer.toBinaryString(5));   



   結果打印爲 
      1 
     011 
     101 
    解析:3的二進制爲011,5的二進制爲101,與操做結果爲001。轉爲十進制是1。 


|(或) 
      運算規則: 0|0=0   0|1=1  1|0=1   1|1=1 
     即:參加運算的兩個對象只要有一個爲1,其結果就爲1 

   app

Java代碼 spa

 收藏代碼

  1. int a=(3|5);  
  2. System.out.println(a);  
  3. System.out.println(Integer.toBinaryString(3));   
  4. System.out.println(Integer.toBinaryString(5));   



   結果打印爲 
     7 
    011 
    101 

    解析:3的二進制位011,5的二進制位101。或操做結果爲111。轉爲10進製爲7 


^(異或) 
    運算規則:1^0=0   0^1=1   1^0=1   1^1=0 
         即:參加運算的兩個對象,若是兩個個相應位爲「異」(值不一樣),則該位結果爲1,不然爲0 

   對象

Java代碼 ip

 收藏代碼

  1. int a=(3^5);  
  2. System.out.println(a);  
  3. System.out.println(Integer.toBinaryString(3));   
  4. System.out.println(Integer.toBinaryString(5));   


    
    結果打印爲 
          6 
       011 
       101 

    解析:3的二進制位011,5的二進制位101。或操做結果爲110。轉爲10進製爲6 


~(非) 
    運算規則:~1=0   ~0=1          
        即:對一個二進制數按位取反,即0變爲1,1變爲0 

    ~運算符的優先級比算數運算符、關係運算符、邏輯運算符和其餘運算符都高 

<<(左移) 
    將一個運算符對象的各二進制位所有左移諾幹位(左邊的二進制位丟棄,右邊補0) 
     操做數每左移一位,至關於該數乘以2 
   get

Java代碼 flash

 收藏代碼

  1. int a=(3<<2);  
  2. System.out.println(a);  
  3. System.out.println(Integer.toBinaryString(3));   
  4. System.out.println(Integer.toBinaryString(12));   


    
    結果打印爲 
         12 
        11 
        1100 

    解析:此運算符的意思就是把3的二進制位所有左移兩位,右邊補2個0。3的二進制位11,左移兩位後,右邊補2個0就是1100。1100轉爲10進製爲12。 
     說到底左移操做就至關於2的2次方×3。 每左移1位次方就增1 


>>(右移) 
將一個數的各二進制位所有右移諾幹位,正數左補0,負數左補1,右邊丟棄。 
操做數每右移一位,至關於該數除以2 
 it

Java代碼 io

 收藏代碼

  1. int a=(9>>1);  
  2. System.out.println(a);  
  3. System.out.println(Integer.toBinaryString(9));   
  4. System.out.println(Integer.toBinaryString(4));   

         結果打印爲           4          1001          100            解析:9的二進制爲1001,右移1位後,左正數補0,右邊丟棄。結果爲 0100。轉爲10進制後爲4。 

相關文章
相關標籤/搜索