當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C# BitArray用法及代碼示例


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

參考:



相關用法


注:本文由純淨天空篩選整理自Sahil_Bansall大神的英文原創作品 C# | BitArray Class。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。