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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。