BitArray 类管理一个紧凑的位值数组,这些位值表示为布尔值,其中 true 表示该位打开,即 1,而 false 表示该位关闭,即 0。此类包含在 System.Collections 命名空间中。
BitArray 类的属性:
- BitArray 类是一个集合类,其中容量始终与计数相同。
- 通过增加元素将元素添加到 BitArray长度属性。
- 通过减少元素来删除长度属性。
- 可以使用整数索引来访问此集合中的元素。该集合中的索引是从零开始的。
Constructors
构造函数 | 说明 |
---|---|
BitArray(BitArray) | 初始化 BitArray 类的新实例,其中包含从指定 BitArray 复制的位值。 |
位数组(布尔值[]) | 初始化 BitArray 类的新实例,其中包含从指定布尔值数组复制的位值。 |
位数组(字节[]) | 初始化 BitArray 类的新实例,其中包含从指定字节数组复制的位值。 |
位数组(Int32) | 初始化 BitArray 类的新实例,该实例可以保存指定数量的位值,这些位值最初设置为 false。 |
BitArray(Int32,布尔值) | 初始化 BitArray 类的新实例,该实例可以保存指定数量的位值,这些位值最初设置为指定值。 |
位数组(Int32[]) | 初始化 BitArray 类的新实例,其中包含从指定的 32 位整数数组复制的位值。 |
例子:
// C# code to create a BitArray
using System;
using System.Collections;
class GFG {
// Driver code
public static void Main()
{
// Creating a BitArray
BitArray myBitArr = new BitArray(5);
myBitArr[0] = true;
myBitArr[1] = true;
myBitArr[2] = false;
myBitArr[3] = true;
myBitArr[4] = false;
// To get the value of index at index 2
Console.WriteLine(myBitArr.Get(2));
// To get the value of index at index 3
Console.WriteLine(myBitArr.Get(3));
}
}
输出:
False True
Properties
属性 | 说明 |
---|---|
Count | 获取 BitArray 中包含的元素数。 |
IsReadOnly | 获取一个值,该值指示BitArray是否为只读。 |
IsSynchronized | 获取一个值,该值指示对 BitArray 的访问是否同步(线程安全)。 |
项目[Int32] | 获取或设置 BitArray 中特定位置的位值。 |
Length | 获取或设置 BitArray 中的元素数。 |
SyncRoot | 获取可用于同步对 BitArray 的访问的对象。 |
例子:
// C# program to illustrate the
// BitArray Class Properties
using System;
using System.Collections;
class GFG {
// Driver code
public static void Main()
{
// Creating a BitArray
BitArray myBitArr = new BitArray(new byte[] { 0, 0, 0, 1 });
// -------- IsReadOnly Property --------
// Checking if the BitArray is read-only
Console.WriteLine(myBitArr.IsReadOnly);
// -------- Count Property --------
// To get the number of elements
// contained in the BitArray
Console.WriteLine(myBitArr.Count);
}
}
输出:
False 32
Methods
方法 | 说明 |
---|---|
And(BitArray) | 在当前BitArray对象的元素与指定数组中的相应元素之间执行按位与运算。当前BitArray对象将被修改以存储按位AND运算的结果。 |
Clone() | 创建 BitArray 的浅拷贝。 |
复制到(数组,Int32) | 从目标数组的指定索引开始,将整个 BitArray 复制到兼容的一维数组。 |
Equals(Object) | 确定指定对象是否等于当前对象。 |
获取(Int32) | 获取 BitArray 中特定位置的位的值。 |
GetEnumerator() | 返回一个迭代 BitArray 的枚举器。 |
BitArray.LeftShift() | 它用于将位数组的位向左移动一位,并在移动的位置上添加零。 |
GetHashCode() | 用作默认的哈希函数。 |
GetType() | 获取当前实例的类型。 |
MemberwiseClone() | 创建当前对象的浅拷贝。 |
Not() | 反转当前 BitArray 中的所有位值,使设置为 true 的元素更改为 false,设置为 false 的元素更改为 true。 |
BitArray.RightShift() | 它用于将位数组的位向右移动一位,并在移动的位置上添加零。 |
Or(BitArray) | 在当前BitArray对象的元素与指定数组中的相应元素之间执行按位或运算。当前BitArray对象将被修改以存储按位或运算的结果。 |
设置(Int32,布尔值) | 将 BitArray 中特定位置的位设置为指定值。 |
SetAll(Boolean) | 将 BitArray 中的所有位设置为指定值。 |
ToString() | 返回表示当前对象的字符串。 |
Xor(BitArray) | 在当前 BitArray 对象的元素与指定数组中的相应元素之间执行按位异或运算。当前BitArray对象将被修改以存储按位异或运算的结果。 |
示例 1:
// C# code to do bitwise
// OR between BitArray
using System;
using System.Collections;
class GFG {
// Driver code
public static void Main()
{
// Creating a BitArray
BitArray myBitArr1 = new BitArray(4);
// Creating a BitArray
BitArray myBitArr2 = new BitArray(4);
// Initializing values in myBitArr1
myBitArr1[0] = false;
myBitArr1[1] = false;
myBitArr1[2] = true;
myBitArr1[3] = true;
// Initializing values in myBitArr2
myBitArr2[0] = false;
myBitArr2[2] = false;
myBitArr2[1] = true;
myBitArr2[3] = true;
// function calling
PrintValues(myBitArr1.Or(myBitArr2));
}
// Displaying the result
public static void PrintValues(IEnumerable myList)
{
foreach(Object obj in myList)
{
Console.WriteLine(obj);
}
}
}
输出:
False True True True
示例 2:
// C# code to set all bits in the
// BitArray to the specified value
using System;
using System.Collections;
class GFG {
// Driver code
public static void Main()
{
// Creating a BitArray myBitArr
BitArray myBitArr = new BitArray(5);
// Initializing all the bits in myBitArr
myBitArr[0] = false;
myBitArr[1] = true;
myBitArr[2] = true;
myBitArr[3] = false;
myBitArr[4] = true;
// Printing the values in myBitArr
Console.WriteLine("Initially the bits are as : ");
PrintIndexAndValues(myBitArr);
// Setting all bits to false
myBitArr.SetAll(false);
// Printing the values in myBitArr
// It should display all the bits as false
Console.WriteLine("Finally the bits are as : ");
PrintIndexAndValues(myBitArr);
}
// Function to display bits
public static void PrintIndexAndValues(IEnumerable myArr)
{
foreach(Object obj in myArr)
{
Console.WriteLine(obj);
}
}
}
输出:
Initially the bits are as : False True True False True Finally the bits are as : False False False False False
参考:
相关用法
- C# BitArray.LeftShift()用法及代码示例
- C# BitArray.RightShift()用法及代码示例
- C# BitConverter.ToUInt16()用法及代码示例
- C# BitConverter.ToUInt32()用法及代码示例
- C# BitConverter.DoubleToInt64Bits()用法及代码示例
- C# BitConverter.Int64BitsToDouble()用法及代码示例
- C# BitConverter.ToBoolean()用法及代码示例
- C# BitConverter.ToChar()用法及代码示例
- C# BitConverter.ToDouble()用法及代码示例
- C# BitConverter.ToInt16()用法及代码示例
- C# BitConverter.ToInt32()用法及代码示例
- C# BitConverter.ToInt64()用法及代码示例
- C# BitConverter.ToSingle()用法及代码示例
- C# BitConverter.ToUInt16用法及代码示例
- C# BitConverter.ToUInt32用法及代码示例
- C# BitConverter.ToUInt64用法及代码示例
- C# BitConverter.ToString(Byte[])用法及代码示例
- C# BitConverter用法及代码示例
- C# Boolean.GetTypeCode()用法及代码示例
- C# Byte.ToString()用法及代码示例
- C# Boolean.GetHashCode()用法及代码示例
- C# Boolean.GetTypeCode用法及代码示例
- C# Boolean.ToString(IFormatProvider)用法及代码示例
- C# Boolean.CompareTo(Boolean)用法及代码示例
- C# Boolean.CompareTo(Object)用法及代码示例
注:本文由纯净天空筛选整理自Sahil_Bansall大神的英文原创作品 C# | BitArray Class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。