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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP