คลาส BitArray ใช้เมื่อต้องการจัดเก็บค่า Bit (0 หรือ 1) แต่ไม่ทราบล่วงหน้าจำนวน Bit ที่จะใช้ ให้คอมไพเลอร์จัดการหน่วยความจำให้อัตโนมัติ
คุณสมบัติหลักของ BitArray
| ลำดับ | Property และคำอธิบาย |
|---|---|
| 1 | Count ดึงจำนวนสมาชิกทั้งหมดใน BitArray |
| 2 | IsReadOnly ดึงค่าบ่งชี้ว่า BitArray เป็นแบบอ่านอย่างเดียวหรือไม่ |
| 3 | Item ดึงหรือตั้งค่าค่า Bit ที่ตำแหน่งเฉพาะใน BitArray |
| 4 | Length ดึงหรือตั้งค่าจำนวนสมาชิกใน BitArray |
เมธอดสำคัญของ BitArray
And(BitArray)- ทำการ AND แบบ BitwiseOr(BitArray)- ทำการ OR แบบ BitwiseXor(BitArray)- ทำการ XOR แบบ BitwiseNot() - กลับค่า Bit ทั้งหมด (0 กลายเป็น 1, 1 กลายเป็น 0)Set(index, value)- ตั้งค่า Bit ที่ตำแหน่งที่กำหนดSetAll(value)- ตั้งค่า Bit ทั้งหมดให้เป็นค่าเดียวกันGet(index)- ดึงค่า Bit ที่ตำแหน่งที่กำหนด
ตัวอย่างการใช้งาน IsReadOnly
using System;
using System.Collections;
namespace Demo {
class Program {
static void Main(string[] args) {
BitArray ba1 = new BitArray(5);
BitArray ba2 = new BitArray(5);
byte[] a = { 90 };
byte[] b = { 30 };
ba1 = new BitArray(a);
ba2 = new BitArray(b);
Console.WriteLine("Bit array ba1:");
for (int i = 0; i < ba1.Count; i++) {
Console.Write("{0, -4} ", ba1[i]);
}
Console.WriteLine();
Console.WriteLine("IsReadOnly = " + ba1.IsReadOnly);
Console.WriteLine("IsReadOnly = " + ba2.IsReadOnly);
Console.ReadKey();
}
}
}
การประยุกต์ใช้งาน
- จัดการ Flag หลายตัวพร้อมกัน
- บีบอัดข้อมูล Boolean ให้ประหยัดหน่วยความจำ
- ทำงานกับ Bitwise Operations ได้อย่างมีประสิทธิภาพ