C# - BitArray 類



BitArray 類管理一個緊湊的位值陣列,這些位值表示為布林值,其中 true 表示位開啟 (1),false 表示位關閉 (0)。

當您需要儲存位但事先不知道位數時,可以使用它。您可以使用從零開始的整數索引訪問 BitArray 集合中的項。

BitArray 類的屬性和方法

下表列出了一些常用的BitArray類的屬性

序號 屬性及說明
1

Count

獲取 BitArray 中包含的元素個數。

2

IsReadOnly

獲取一個值,該值指示 BitArray 是否為只讀。

3

Item

獲取或設定 BitArray 中特定位置的位的值。

4

Length

獲取或設定 BitArray 中的元素個數。

下表列出了一些常用的BitArray類的方法

序號 方法及說明
1

public BitArray And(BitArray value);

對當前 BitArray 中的元素與指定 BitArray 中的對應元素執行按位 AND 運算。

2

public bool Get(int index);

獲取 BitArray 中特定位置的位的值。

3

public BitArray Not();

反轉當前 BitArray 中的所有位值,以便將設定為 true 的元素更改為 false,將設定為 false 的元素更改為 true。

4

public BitArray Or(BitArray value);

對當前 BitArray 中的元素與指定 BitArray 中的對應元素執行按位 OR 運算。

5

public void Set(int index, bool value);

將 BitArray 中特定位置的位設定為指定值。

6

public void SetAll(bool value);

將 BitArray 中的所有位設定為指定值。

7

public BitArray Xor(BitArray value);

對當前 BitArray 中的元素與指定 BitArray 中的對應元素執行按位異或運算。

示例

以下示例演示了 BitArray 類的用法:

using System;
using System.Collections;

namespace CollectionsApplication {
   class Program {
      static void Main(string[] args) {
         //creating two  bit arrays of size 8
         BitArray ba1 = new BitArray(8);
         BitArray ba2 = new BitArray(8);
         
         byte[] a = { 60 };
         byte[] b = { 13 };
         
         //storing the values 60, and 13 into the bit arrays
         ba1 = new BitArray(a);
         ba2 = new BitArray(b);
         
         //content of ba1
         Console.WriteLine("Bit array ba1: 60");
         
         for (int i = 0; i < ba1.Count; i++) {
            Console.Write("{0, -6} ", ba1[i]);
         }
         Console.WriteLine();
         
         //content of ba2
         Console.WriteLine("Bit array 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);
         
         //content of ba3
         Console.WriteLine("Bit array ba3 after AND operation: 12");
         
         for (int i = 0; i < ba3.Count; i++) {
            Console.Write("{0, -6} ", ba3[i]);
         }
         Console.WriteLine();
         ba3 = ba1.Or(ba2);
         
         //content of ba3
         Console.WriteLine("Bit array ba3 after OR operation: 61");
         
         for (int i = 0; i < ba3.Count; i++) {
            Console.Write("{0, -6} ", ba3[i]);
         }
         Console.WriteLine();

         Console.ReadKey();
      }
   }
}

編譯並執行上述程式碼後,將產生以下結果:

Bit array ba1: 60 
False False True True True True False False 
Bit array ba2: 13
True False True True False False False False 
Bit array ba3 after AND operation: 12
False False True True False False False False 
Bit array ba3 after OR operation: 61
True False True True False False False False 
csharp_collections.htm
廣告