آموزش سی شارپ - کلاس BitArray
کلاس BitArray یک آرایه فشرده از مقادیر بیت را مدیریت میکند. در این آرایه، بیتها به صورت بولین (Boolean) نمایش داده میشوند؛ به این صورت که true بیانگر روشن بودن بیت (1) و false بیانگر خاموش بودن بیت (0) است.
این کلاس در مواقعی استفاده میشود که نیاز به ذخیره بیتها وجود دارد، اما تعداد بیتها را پیشبینی نمیکنید. میتوانید با استفاده از یک شاخص صحیح (integer index)، که از صفر شروع میشود، به آیتمهای مجموعه BitArray دسترسی پیدا کنید.
متدها و خصوصیات کلاس BitArray
در جدول زیر، برخی از خصوصیات رایج کلاس BitArray آمده است:
شماره | خصوصیت و توضیحات |
---|---|
1 |
Count تعداد عناصر موجود در BitArray را برمیگرداند. |
2 |
IsReadOnly مقداری را برمیگرداند که نشان میدهد آیا BitArray قابل خواندن است یا خیر. |
3 |
Item مقدار بیت در موقعیت خاصی در BitArray را برمیگرداند یا تنظیم میکند. |
4 |
Length تعداد عناصر موجود در BitArray را برمیگرداند یا تنظیم میکند. |
در جدول زیر، برخی از متدهای رایج کلاس BitArray آمده است:
شماره | متد و توضیحات |
---|---|
1 |
public BitArray And(BitArray value); عملیات AND بیتبهبیت را بر روی عناصر فعلی BitArray با عناصر متناظر در BitArray مشخص شده انجام میدهد. |
2 |
public bool Get(int index); مقدار بیت در موقعیت خاصی در BitArray را برمیگرداند. |
3 |
public BitArray Not(); تمامی مقادیر بیت در BitArray فعلی را معکوس میکند؛ به طوری که عناصری که به true تنظیم شدهاند، به false تغییر میکنند و عناصری که به false تنظیم شدهاند، به true تغییر میکنند. |
4 |
public BitArray Or(BitArray value); عملیات OR بیتبهبیت را بر روی عناصر فعلی BitArray با عناصر متناظر در BitArray مشخص شده انجام میدهد. |
5 |
public void Set(int index, bool value); بیت در موقعیت خاصی در BitArray را به مقدار مشخص شده تنظیم میکند. |
6 |
public void SetAll(bool value); تمامی بیتها در BitArray را به مقدار مشخص شده تنظیم میکند. |
7 |
public BitArray Xor(BitArray value); عملیات XOR بیتبهبیت را بر روی عناصر فعلی BitArray با عناصر متناظر در BitArray مشخص شده انجام میدهد. |
مثال
مثال زیر نحوه استفاده از کلاس BitArray را نشان میدهد:
using System;
using System.Collections;
namespace CollectionsApplication {
class Program {
static void Main(string[] args) {
//creating two bit arrays of size 8
BitArray ba1 = new BitArray(8);
BitArray ba2 = new BitArray(8);
byte[] a = { 60 };
byte[] b = { 13 };
//storing the values 60, and 13 into the bit arrays
ba1 = new BitArray(a);
ba2 = new BitArray(b);
//content of ba1
Console.WriteLine("Bit array ba1: 60");
for (int i = 0; i < ba1.Count; i++) {
Console.Write("{0, -6} ", ba1[i]);
}
Console.WriteLine();
//content of ba2
Console.WriteLine("Bit array ba2: 13");
for (int i = 0; i < ba2.Count; i++) {
Console.Write("{0, -6} ", ba2[i]);
}
Console.WriteLine();
BitArray ba3 = new BitArray(8);
ba3 = ba1.And(ba2);
//content of ba3
Console.WriteLine("Bit array ba3 after AND operation: 12");
for (int i = 0; i < ba3.Count; i++) {
Console.Write("{0, -6} ", ba3[i]);
}
Console.WriteLine();
ba3 = ba1.Or(ba2);
//content of ba3
Console.WriteLine("Bit array ba3 after OR operation: 61");
for (int i = 0; i < ba3.Count; i++) {
Console.Write("{0, -6} ", ba3[i]);
}
Console.WriteLine();
Console.ReadKey();
}
}
}
هنگامی که کد بالا کامپایل و اجرا می شود، نتیجه زیر را ایجاد می کند -
Bit array ba1: 60
False False True True True True False False
Bit array ba2: 13
True False True True False False False False
Bit array ba3 after AND operation: 12
False False True True False False False False
Bit array ba3 after OR operation: 61
True False True True False False False False