C# 點陣列(BitArray)
BitArray 類管理一個緊湊型的位值數(shù)組,它使用布爾值來表示,其中 true 表示位是開啟的(1),false 表示位是關閉的(0)。
當您需要存儲位,但是事先不知道位數(shù)時,則使用點陣列。您可以使用整型索引從點陣列集合中訪問各項,索引從零開始。
BitArray 類的方法和屬性
下表列出了 BitArray 類的一些常用的 屬性:
屬性 | 描述 |
---|---|
Count | 獲取 BitArray 中包含的元素個數(shù)。 |
IsReadOnly | 獲取一個值,表示 BitArray 是否只讀。 |
Item | 獲取或設置 BitArray 中指定位置的位的值。 |
Length | 獲取或設置 BitArray 中的元素個數(shù)。 |
下表列出了 BitArray 類的一些常用的 方法:
序號 | 方法名 & 描述 |
---|---|
1 | public BitArray And(
BitArray value
);
對當前的 BitArray 中的元素和指定的 BitArray 中的相對應的元素執(zhí)行按位與操作。 |
2 | public bool Get(
int index
);
獲取 BitArray 中指定位置的位的值。 |
3 | public BitArray Not(); 把當前的 BitArray 中的位值反轉,以便設置為 true 的元素變?yōu)?false,設置為 false 的元素變?yōu)?true。 |
4 | public BitArray Or(
BitArray value
);
對當前的 BitArray 中的元素和指定的 BitArray 中的相對應的元素執(zhí)行按位或操作。 |
5 | public void Set(
int index,
bool value
);
把 BitArray 中指定位置的位設置為指定的值。 |
6 | public void SetAll(
bool value
);
把 BitArray 中的所有位設置為指定的值。 |
7 | public BitArray Xor(
BitArray value
);
對當前的 BitArray 中的元素和指定的 BitArray 中的相對應的元素執(zhí)行按位異或操作。 |
實例
下面的實例演示了點陣列(BitArray)的使用:
using System; using System.Collections; namespace CollectionsApplication { class Program { static void Main(string[] args) { // 創(chuàng)建兩個大小為 8 的點陣列 BitArray ba1 = new BitArray(8); BitArray ba2 = new BitArray(8); byte[] a = { 60 }; byte[] b = { 13 }; // 把值 60 和 13 存儲到點陣列中 ba1 = new BitArray(a); ba2 = new BitArray(b); // ba1 的內容 Console.WriteLine("Bit array ba1: 60"); for (int i = 0; i < ba1.Count; i++) { Console.Write("{0, -6} ", ba1[i]); } Console.WriteLine(); // 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); // 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); // 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(); } } }
當上面的代碼被編譯和執(zhí)行時,它會產生下列結果:
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
更多建議: