Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

โอเปอเรเตอร์ AND แบบบิตเวิร์ส (&) ใน JavaScript คืออะไร?


โอเปอเรเตอร์ AND แบบบิตเวิร์ส (&) ทำการดำเนินการ Boolean AND บนแต่ละบิตของอินจิเจอร์สองตัว ผลลัพธ์จะเป็น 1 ก็ต่อเมื่อทั้งสองบิตเป็น 1 หากบิตใดบิตหนึ่งเป็น 0 ผลลัพธ์จะเป็น 0

ตารางความจริง

ABA & B
000
010
100
111

ตัวอย่างโค้ด

<html>
<body>
  <script>
    var a = 2;  // บิต: 10
    var b = 3;  // บิต: 11
    document.write("(a & b) => ");
    result = (a & b);
    document.write(result); // ผลลัพธ์: 2 (บิต: 10)
  </script>
</body>
</html>

การประยุกต์ใช้หลัก

1. Bit Masking (การปิดบังบิต)

ใช้ตรวจสอบหรือล้างบิตเฉพาะ:

// ตรวจสอบบิตที่ 3 (นับจาก 0)
var flag = 5; // 101
var mask = 4; // 100 (บิตที่ 3)
if (flag & mask) { /* บิตที่ 3 เป็น 1 */ }

// ล้างบิตที่ 3
flag = flag & ~mask; // 101 & 011 = 001

2. ตรวจสอบเลขคู่/คี่

function isEven(n) {
  return (n & 1) === 0; // บิต LSB เป็น 0 = คู่
}

3. การคำนวณ Modulo กำลังของ 2

// x % 8 เทียบเท่า x & 7 (เร็วกว่า)
var result = x & 7; // 7 = 0b111

4. การแปลงสี RGB

var color = 0xFF3366;
var r = (color & 0xFF0000) >> 16; // 255
var g = (color & 0x00FF00) >> 8;  // 51
var b = color & 0x0000FF;         // 102

ข้อควรระวัง

JavaScript แปลง operand เป็น 32-bit signed integer ก่อนคำนวณ ผลลัพธ์จึงอยู่ในช่วง -2,147,483,648 ถึง 2,147,483,647