BITAND ใช้เปรียบเทียบเลข 2 ตัวในระดับบิต (bit-by-bit comparison) ผลลัพธ์จะเป็น 1 ก็ต่อเมื่อตำแหน่งบิตนั้น ‘เป็น 1 ทั้งคู่’ เท่านั้น
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| number1 | Number | ตัวเลขแรก (ต้องเป็นจำนวนเต็มที่ >= 0 และ < 2^48) |
| number2 | Number | ตัวเลขที่สอง (ต้องเป็นจำนวนเต็มที่ >= 0 และ < 2^48) |
BITAND เป็นฟังก์ชันที่ใช้เปรียบเทียบเลข 2 ตัวในระดับบิต (Bitwise AND operation).
หลักการของ BITAND ก็คือ: เมื่อเปรียบเทียบเลข 2 ตัว บิตแต่ละตำแหน่ง ถ้า **ทั้งคู่เป็น 1** ผลลัพธ์จึงจะเป็น 1 ถ้าตำแหน่งไหนเป็น 0 ผลลัพธ์ก็จะเป็น 0.
ตัวอย่าง: 5 (101) AND 3 (011) = 1 (001) เพราะว่า บิตตัวแรก (2^0) มีค่า 1 ทั้งคู่เท่านั้น.
ฟังก์ชันนี้มีประโยชน์ในการตรวจสอบสถานะ (flags) หรือ permission bits ในโปรแกรม หรือการทำงานกับข้อมูลไบนารี
5 เป็น 101 (ไบนารี), 3 เป็น 011 (ไบนารี) เมื่อ AND กัน ได้ 001 = 1 เพราะบิตแรก (2^0) ของทั้งคู่เป็น 1
ถ้า UserFlags มีบิต 2^2 (ค่า 4) เปิด = มีสิทธิ Admin ใช้กับการตรวจสอบ flags/permissions ในระบบ
13 = 01101, 25 = 11001 AND กัน = 01001 (ซึ่งเป็น 8+1 = 9)
ตรวจสอบว่าบิตที่ 2 (ค่า 2) ถูกเปิดอยู่หรือไม่ โดยเปรียบเทียบผลลัพธ์กับ 2
BITAND ผลลัพธ์เป็น 1 ก็ต่อเมื่อ **ทั้งคู่** เป็น 1 (AND logic) ส่วน BITOR ผลลัพธ์เป็น 1 ถ้า **อย่างน้อย 1 ตัว** เป็น 1 (OR logic) ตัวอย่าง: BITAND(5,3)=1 แต่ BITOR(5,3)=7
ไม่ได้ BITAND ต้องใช้กับจำนวนเต็มบวก >= 0 เท่านั้น ถ้าใส่เลขลบจะ error #NUM!
ตัวเลขสูงสุดคือ (2^48)-1 = 281,474,976,710,655 ถ้าเกินจะ error #NUM!
ใช้ตรวจสอบ permission bits, feature flags, file attributes ตัวอย่าง: เช็คว่าไฟล์มีสิทธิ read/write/execute หรือไม่ หรือเช็คว่าผู้ใช้มี role ชนิดไหน
8 เพราะ 15 = 1111, 8 = 1000 AND กัน = 1000 = 8
ฟังก์ชันที่ผู้เขียนโยงไว้กับ BITAND จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
เลื่อนบิตไปทางซ้ายของตัวเลข ซึ่งเทียบเท่ากับการคูณด้วย 2 สำหรับแต่ละการเลื่อน เป็นการดำเนินการแบบ bitwise ที่ใช้ในการคำนวณและการประมวลผลบิต
ฟังก์ชัน BITOR ใช้สำหรับหาค่า Bitwise OR ของตัวเลขสองจำนวน โดยผลลัพธ์จะเป็น 1 เมื่อบิตใดบิตหนึ่งเป็น 1 ส่วน 0 เมื่อบิตทั้งสองเป็น 0
เลื่อนบิตตัวเลขไปทางขวา โดยการเลื่อน 1 ครั้งเท่ากับหารด้วย 2 แล้วปัดเศษทิ้ง ใช้สำหรับการดำเนินการบิตเวลจำนวนเต็ม
เปรียบเทียบบิตของตัวเลขสองจำนวน ถ้าบิตต่างกันได้ 1 ถ้าเหมือนได้ 0 ใช้สำหรับงานจัดการบิต ตรวจสอบความต่าง และ toggle ค่า
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่