C# BitArray類
BitArray類管理位值,其表示為布爾,一個緊湊數組,其中true表示位是(1)和false表示位是關閉的(0)。
當需要存儲位,但不知道事先比特數就使用它。您可以通過使用一個整數索引,它從零開始訪問BitArray集合中的項。
BitArray類的方法和屬性
下表列出了一些BitArray類的常用屬性:
屬性 | 描述 |
---|---|
Count | 獲取包含在BitArray元素的數量 |
IsReadOnly | 獲取一個值,指示BitArray是否是隻讀 |
Item | 獲取或設置在所述BitArray的特定位置的比特的值 |
Length | 獲取或設置在BitArray元素的數量 |
下表列出了一些BitArray類的常用方法:
S.N | 方法名稱及用途 |
---|---|
1 |
public BitArray And( BitArray value ); 執行對指定BitArray的相應元素在當前BitArray元素的按位與運算 |
2 |
public bool Get( int index ); 獲取在所述BitArray的特定位置的比特的值 |
3 |
public BitArray Not(); 反轉當前BitArray所有的位值,使設置為true的元素被更改為false,並設置為false元素更改為true |
4 |
public BitArray Or( BitArray value ); 在執行對指定BitArray的相應元素在當前BitArray的元素的按位或操作 |
5 |
public void Set( int index, bool value ); 設置在所述BitArray為指定值的特定位置的比特值 |
6 |
public void SetAll( bool value ); 設置在BitArray所有位設置為指定值 |
7 |
public BitArray Xor( BitArray value ); 執行關於對在指定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