C#中的BitArray类
BitArray类管理一个紧凑的位值数组,这些值表示为布尔值,其中true表示该位为开(1),false表示该位为关。
下表列出了BitArray类的一些常用方法-
对当前BitArray中的元素与指定BitArray中的相应元素执行按位与运算。
获取BitArray中特定位置的位的值。
Not();反转当前BitArray中的所有位值,以便将设置为true的元素更改为false,并将设置为false的元素更改为true。
对当前BitArray中的元素与指定BitArray中的相应元素执行按位或运算。
将BitArray中特定位置的位设置为指定值。
将BitArray中的所有位设置为指定值。
对当前BitArray中的元素与指定BitArray中的相应元素执行按位异或运算。
示例
现在让我们看一个例子-
using System;
using System.Collections;
public class Demo {
public static void Main(){
BitArray arr1 = new BitArray(2);
BitArray arr2 = new BitArray(2);
arr1[0] = false;
arr1[1] = true;
Console.WriteLine("Elements in BitArray1...");
foreach (bool res in arr1){
Console.WriteLine(res);
}
arr2[0] = false;
arr2[1] = true;
Console.WriteLine("Elements in BitArray2...");
foreach (bool res in arr2){
Console.WriteLine(res);
}
Console.WriteLine("Is BitArray1 equal to BitArray2? = "+arr2.Equals(arr1));
Console.WriteLine("Is BitArray synchronized? = "+arr2.IsSynchronized);
Console.WriteLine("Is BitArray read-only? = "+arr2.IsReadOnly);
}
}输出结果
这将产生以下输出-
Elements in BitArray1... False True Elements in BitArray2... False True Is BitArray1 equal to BitArray2? = False Is BitArray synchronized? = False Is BitArray read-only? = False
示例
我们来看另一个在BitArray元素之间实现按位异或运算的示例-
using System;
using System.Collections;
public class Demo {
public static void Main(){
BitArray arr1 = new BitArray(5);
BitArray arr2 = new BitArray(5);
arr1[0] = false;
arr1[1] = false;
arr2[0] = false;
arr2[1] = true;
Console.WriteLine("BitArray1 elements...");
foreach (bool res in arr1){
Console.WriteLine(res);
}
Console.WriteLine("\nBitArray2 elements...");
foreach (bool res in arr2){
Console.WriteLine(res);
}
Console.WriteLine("\nBitwise exclusive OR operation...");
IEnumerable demoEnum = arr1.Xor(arr2);
foreach(Object ob in demoEnum){
Console.WriteLine(ob);
}
}
}输出结果
这将产生以下输出-
BitArray1 elements... False False False False False BitArray2 elements... False True False False False Bitwise exclusive OR operation... False True False False False