ดังที่เราทราบระดับบิต 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