ตัวดำเนินการระดับบิต AND (&) เปรียบเทียบแต่ละบิตของตัวถูกดำเนินการแรกกับบิตที่สอดคล้องกันของตัวถูกดำเนินการที่สอง หากทั้งสองบิตเป็น 1 บิตผลลัพธ์ที่สอดคล้องกันจะถูกตั้งค่าเป็น 1 มิฉะนั้น บิตผลลัพธ์ที่สอดคล้องกันจะถูกตั้งค่าเป็น 0 ตัวถูกดำเนินการทั้งสองให้รวมตัวดำเนินการแบบรวมระดับบิตและต้องเป็นประเภทอินทิกรัล ตัวอย่างเช่น
ตัวอย่าง
#include <iostream> using namespace std; int main() { unsigned short a = 0x5555; // pattern 0101 ... unsigned short b = 0xAAAA; // pattern 1010 ... cout << hex << ( a & b ) << endl; }
ผลลัพธ์
สิ่งนี้ให้ผลลัพธ์ -
0