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