java | (按位或) & (按位與) || (邏輯或) && (邏輯與) ^(異或) ⊙ (同或) 區別以及理解


以下所有的舉例都以十進制5 和 3  轉成二進制如下 , 

5 :0101

3 :  0011

  按位或(|):

  按照位置同為假(0) 則是假(0) ;其中一個為真(1)則為真(1)。

  5 | 3 ==》0101 | 0011 ==》0111 ===》(十進制)7

 按位執行步驟:

     0 |  0= 0;  

     1 | 0 = 1;   

     0 | 1= 1;    

     1 | 1 = 1;        

結果:0111

 

  按位與(&):

  按照位置 同為真(1)則是真(1);否則 一真一假 或者都為假 則是假(0); 

  5 | 3 ==》0101 | 0011 ==》0111 ===》(十進制)1

 按位執行步驟: 

       0  &  0= 0;   

     1 & 0= 0;    

     0 & 1= 0;    

     1 & 1= 1;        

結果:0001

  

 同或 (⊙ ):

  5 ⊙  3:  按位操作,不相同則位真(1),相同則為假

 

  5 ⊙  3 ==》0101 ^ 0011 ==》0110 ===》(十進制)9

按位執行步驟:

     0  ⊙   0= 1;   

     1  ⊙   0= 0;    

     0  ⊙ 1= 0;    

     1  ⊙ 1= 1 ;        

 結果:1001

 

 異或 (^):

  5 ^ 3:  按位操作,不相同則位真(1),相同則為假

 

  5 ^ 3 ==》0101 ^ 0011 ==》0110 ===》(十進制)6

按位執行步驟:

     0  ^   0= 0;   

     1  ^  0= 1;    

     0  ^  1= 1;    

     1 ^  1= 0;        

 結果:0110

     

 

  邏輯或(||): 

  a|| b

 a 或 b 任何一個條件為真則為真,否則都為假

  if( a || b  ){

  return 1;     // 條件  1 : a=true , b=false;   2 : a=false, b=true;  3 : a=true,b=true; 

    }

  

  邏輯或(&&): 當第一個為 false 則第二個不用判斷,當第一個為true 第二個還要判斷

  a && b

 a 或 b 任何一個條件為真則為真,否則都為假

  if( a && b  ){

  return 1;     // 條件  1 : a=true, b=true;  

    }


免責聲明!

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



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