อาเรย์บูลีนคืออะไร?

อาเรย์บูลีนในการเขียนโปรแกรมคอมพิวเตอร์คือลำดับของค่าที่สามารถเก็บค่าของจริงหรือเท็จเท่านั้น ตามคำนิยามบูลีนสามารถเป็นจริงหรือเท็จเท่านั้นและไม่สามารถเก็บค่าตัวกลางอื่น ๆ ได้ อาร์เรย์คือลำดับของชนิดข้อมูลที่ใช้ตำแหน่งตัวเลขในพื้นที่หน่วยความจำเชิงเส้น ในขณะที่การใช้งานจริงของอาเรย์บูลีนมักจะถูกทิ้งไว้ที่คอมไพเลอร์หรือไลบรารีภาษาคอมพิวเตอร์มันทำอย่างมีประสิทธิภาพมากที่สุดโดยใช้บิตแทนที่จะเป็นไบต์หรือคำที่สมบูรณ์ มีประโยชน์หลายอย่างสำหรับอาเรย์บูลีนรวมถึงการติดตามสถานะแฟล็กและการจัดตำแหน่งการตั้งค่าสำหรับอินเตอร์เฟสฮาร์ดแวร์ทางกายภาพ

แนวคิดของอาเรย์บูลีนนั้นเกิดจากวิธีการดั้งเดิมที่ใช้ในการเก็บข้อมูลบนคอมพิวเตอร์ที่มีหน่วยความจำเหลือน้อยมาก การใช้งานครั้งแรกของอาเรย์บูลีนในรูปแบบของบิตอาเรย์ สิ่งนี้ใช้ชนิดข้อมูลที่มีขนาดใหญ่กว่าเช่นไบต์หรือจำนวนเต็มแบบยาวเพื่อเก็บข้อมูลโดยการตั้งค่าบิตของชนิดข้อมูลเป็นจริงหรือเท็จ ด้วยวิธีนี้ไบต์เดียวที่มีความยาวแปดบิตสามารถเก็บค่าจริงหรือเท็จได้แปดค่าช่วยประหยัดพื้นที่และช่วยให้การทำงานระดับบิตมีประสิทธิภาพ

เมื่อขนาดของหน่วยความจำคอมพิวเตอร์เพิ่มขึ้นความต้องการใช้บิตเรย์จึงลดลง ในขณะที่ใช้บิตจะให้ความเป็นไปได้สำหรับการเลื่อนบิตและการใช้ตัวดำเนินการแบบลอจิคัลที่ทำให้การประมวลผลเร็วอย่างไม่น่าเชื่อ การใช้โครงสร้างอาร์เรย์มาตรฐานเพื่อเก็บลำดับของไบต์เป็นวิธีที่ง่ายกว่า แต่ใช้หน่วยความจำมากขึ้นในระหว่างการเรียกใช้โปรแกรม สิ่งนี้สามารถเห็นได้เมื่อสร้างอาร์เรย์ของค่าบูลีน 32 ค่า ด้วยบิตอาเรย์ข้อมูลจะใช้หน่วยความจำสี่ไบต์เท่านั้น แต่อาเรย์ประเภทบูลีนอาจมีขนาดตั้งแต่ 32 ถึง 128 ไบต์ขึ้นอยู่กับการใช้งานระบบ

ภาษาการเขียนโปรแกรมคอมพิวเตอร์บางภาษาใช้บิตอาเรย์จริงเมื่อใช้ประเภทอาเรย์บูลีนแม้ว่าจะไม่เป็นเช่นนั้นก็ตาม อาเรย์บูลีนมีข้อได้เปรียบในการอ่านง่ายมากเมื่อดูซอร์สโค้ด การเปรียบเทียบและการมอบหมายจะถูกนำเสนออย่างชัดเจนในขณะที่ต้องใช้ตัวดำเนินการเชิงตรรกะ "และ", "หรือ" และ "และ" และ "ไม่ใช่" เพื่อสร้างรหัสที่ทำให้เกิดความสับสน

แม้จะมีความง่ายในการใช้งาน แต่ฟีเจอร์หนึ่งที่ไม่สามารถใช้กับอาเรย์บูลีนก็เป็นบิตมาสก์ bitmask เป็นชนิดข้อมูลไบต์เดียวหรือใหญ่กว่าที่มีลำดับของค่าจริงและเท็จที่เกี่ยวข้องกับหลายเงื่อนไข ในการทำงานครั้งเดียวสามารถตรวจสอบบิตจำนวนมากสำหรับสถานะจริงหรือเท็จได้ทั้งหมดในครั้งเดียว ด้วยอาเรย์ตามจำนวนเต็มของค่าบูลีนการดำเนินการเดียวกันจะต้องดำเนินการกับลูป