Bitwise Operators: AND (&), OR (|), XOR (^)
ทำงานระดับบิต (Bit Level) บนจำนวนเต็ม 32-bit
1. Bitwise AND (&)
คืน 1 ก็ต่อเมื่อ ทั้งสองบิตเป็น 1
<script>
document.write(13 & 1); // 1
</script>
คำอธิบาย: 13 = 1101, 1 = 0001 → 1101 & 0001 = 0001 = 1
2. Bitwise OR (|)
คืน 1 ถ้า บิตใดบิตหนึ่งเป็น 1
<script>
document.write(5 | 1); // 5
</script>
คำอธิบาย: 5 = 0101, 1 = 0001 → 0101 | 0001 = 0101 = 5
3. Bitwise XOR (^)
คืน 1 ถ้า บิตต่างกัน (0,1 หรือ 1,0)
<script>
document.write(5 ^ 1); // 4
</script>
คำอธิบาย: 5 = 0101, 1 = 0001 → 0101 ^ 0001 = 0100 = 4
ตารางความจริง (Truth Table)
| a | b | a & b | a | b | a ^ b |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
การใช้งานจริง
- & - ตรวจสอบ Flag/Permission (Bitmask)
- | - ตั้งค่า Flag
- ^ - Toggle Flag, Swap ตัวแปรโดยไม่ใช้ Temp