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
廣告