C/C++中按位和邏輯AND運算子有什麼不同?


眾所周知,按位AND用“&”表示,而邏輯運算子用“&&”表示。它們之間有一些基本的差異。如下所示 −

  • 邏輯AND運算子對布林表示式進行操作,並且僅返回布林值。按位AND運算子對整數、短整型 int、長整型、無符號整型型別資料進行操作,並且也返回該型別的資料。

示例

 即時演示

#include<iostream>
using namespace std;
int main() {
   int x = 3; //...0011
   int y = 7; //...0111
   if (y > 1 && y > x)
      cout << "y is greater than 1 AND x" << endl;
   int z = x & y; // 0011
   cout << "z = "<< z;
}

輸出

y is greater than 1 AND x
z = 3
  • 如果第一個運算元變為假,則&運算子不會計算第二個運算元。類似地,||運算子在第一個運算元變為真時不會計算第二個運算元,但按位運算子(如&和|)始終計算其運算元。

示例

 即時演示

#include<iostream>
using namespace std;
int main() {
   int x = 0;
   cout << (x && printf("Test using && ")) << endl;
   cout << (x & printf("Test using & "));
}

輸出

0
Test using & 0

更新時間:2019年12月17日

6K +瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告