C#—BitArray点阵列
在 C# 中,BitArray 类用来管理一个紧凑型的位值数组,数组中的值均为布尔类型,其中 true(1)表示此位为开启,false(0)表示此位为关闭。
当需要存储位(英文名“bit”数据存储的最小单位,也可称为比特),但事先又不知道具体位数时,就可以使用点阵列。当需要访问点阵列中的元素时,可以使用整型索引从点阵列中访问指定元素,索引从零开始。
文章来源: C#教程(非常详细) - C语言中文网
BitArray 类中的属性
属性 | 描述 |
Count | 获取点阵列中包含的元素个数 |
IsReadOnly | 判断 点阵列是否只读 |
Item | 获取或设置点阵列中指定位置的值 |
Length | 获取或设置点阵列中的元素个数 |
BitArray | 类中的方法 |
BitArray 类中的方法
方法名 | 描述 |
public BitArray And(BitArray value) | 对当前的点阵列中的元素和指定点阵列中相对应的元素执行按位与操作 |
public bool Get(int index) | 获取点阵列中指定位置的位值 |
public BitArray Not() | 反转当前点阵列中所有位的值,即将 true 设置为 false,将 false 设置为 true |
public BitArray Or(BitArray value) | 对当前点阵列中的元素和指定点阵列中的相对应的元素执行按位或操作 |
public void Set(int index, bool value) | 把点阵列中指定位置的位设置为指定的值 |
public void SetAll(bool value) | 把点阵列中的所有位设置为指定的值 |
public BitArray Xor(BitArray value) | 对当前点阵列中的元素和指定点阵列中的相对应的元素执行按位异或操作 |
BitArray属性和方法的使用
class Demo{static void Main(string[] args){// 创建两个大小为 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("点阵列 ba1: 60");for (int i = 0; i < ba1.Count; i++){Console.Write("{0, -6} ", ba1[i]);}Console.WriteLine();// ba2 的内容Console.WriteLine("点阵列 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("执行按位与操作后的点阵列 ba3:");for (int i = 0; i < ba3.Count; i++){Console.Write("{0, -6} ", ba3[i]);}Console.WriteLine();ba3 = ba1.Or(ba2);// ba3 的内容Console.WriteLine("执行按位或操作后的点阵列 ba3:");for (int i = 0; i < ba3.Count; i++){Console.Write("{0, -6} ", ba3[i]);}Console.WriteLine();Console.ReadKey();}}
结果:
点阵列 ba1: 60
False False True True True True False False
点阵列 ba2: 13
True False True True False False False False
执行按位与操作后的点阵列 ba3:
False False True True False False False False
执行按位或操作后的点阵列 ba3:
True False True True False False False False