BitArray
BitArray类管理一个紧凑的位值数组,表示为布尔值,其中true表示该位为on(1),false表示该位为off(0)。
它在您需要存储位但未提前知道位数时使用。 您可以使用从零开始的整数索引来访问BitArray集合中的项目。
BitArray类的方法和属性
下表列出了BitArray类的一些常用properties -
Sr.No. | 财产和描述 |
---|---|
1 | Count 获取BitArray中包含的元素数。 |
2 | IsReadOnly 获取一个值,该值指示BitArray是否为只读。 |
3 | Item 获取或设置BitArray中特定位置的位值。 |
4 | Length 获取或设置BitArray中的元素数。 |
下表列出了BitArray类的一些常用methods -
Sr.No. | 方法和描述 |
---|---|
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中的相应元素执行按位eXclusive OR运算。 |
例子 (Example)
以下示例演示了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