位置:首頁 > 高級語言 > C#教學 > C# BitArray類

C# BitArray類

BitArray類管理位值,其表示為布爾,一個緊湊數組,其中true表示位是(1)和false表示位是關閉的(0)。

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

BitArray類的方法和屬性

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

屬性 描述
Count 獲取包含在BitArray元素的數量
IsReadOnly 獲取一個值,指示BitArray是否是隻讀
Item 獲取或設置在所述BitArray的特定位置的比特的值
Length 獲取或設置在BitArray元素的數量

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

S.N 方法名稱及用途
1 public BitArray And( BitArray value ); 
執行對指定BitArray的相應元素在當前BitArray元素的按位與運算
2 public bool Get( int index ); 
獲取在所述BitArray的特定位置的比特的值
3 public BitArray Not();
反轉當前BitArray所有的位值,使設置為true的元素被更改為false,並設置為false元素更改為true
4 public BitArray Or( BitArray value ); 
在執行對指定BitArray的相應元素在當前BitArray的元素的按位或操作
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