以下所有的舉例都以十進制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;
}