BitArray
類管理位值的緊湊陣列,它們表示為Boolean
,其中true
表示位為開(1
),而false
表示位為關(0
)。
當需要儲存位但不提前知道位數時,可考慮使用BitArray
類。可以通過使用從零開始的整數索引來存取BitArray
集合中的專案。
下表列出了BitArray
類的一些常用屬性:
屬性 | 說明 |
---|---|
Count | 獲取BitArray 中包含的元素數量。 |
IsReadOnly | 獲取一個值,指示BitArray 是否為唯讀。 |
Item | 獲取或設定BitArray 中特定位置的位的值。 |
Length | 獲取或設定BitArray 中的元素數量。 |
下表列出了BitArray
類的一些常用方法:
序號 | 方法 | 描述 |
---|---|---|
1 | public BitArray And(BitArray value); |
對當前BitArray 中的元素與指定的BitArray 中的相應元素執行按位元AND 運算。 |
2 | public bool Get(int index); |
獲取BitArray 中特定位置的位的值。 |
3 | public BitArray Not(); |
反轉當前BitArray 中的所有位值,使設定為true 的元素更改為false ,並將值為false 的元素更改為true 。 |
4 | public BitArray Or(BitArray value); |
對當前BitArray 中的元素對指定的BitArray 中的相應元素執行按位元OR 運算。 |
5 | public void Set(int index, bool value); |
將BitArray 中指定位置的位設定為指定值。 |
6 | public void SetAll(bool value); |
將BitArray 中的所有位設定為指定值。 |
7 | public BitArray Xor(BitArray value); |
BitArray 中的元素對指定的BitArray 中的相應元素執行逐位OR 操作。 |
以下範例演示了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