Csharp-bitarray

提供:Dev Guides
移動先:案内検索

C#-BitArrayクラス

BitArrayクラスは、ブール値として表されるビット値のコンパクトな配列を管理します。trueはビットがオン(1)であることを示し、falseはビットがオフ(0)であることを示します。

ビットを保存する必要があるが、ビット数が事前にわからない場合に使用します。 ゼロから始まる整数インデックスを使用して、BitArrayコレクションのアイテムにアクセスできます。

BitArrayクラスのメソッドとプロパティ

次の表に、 BitArray クラスで一般的に使用される*プロパティ*の一部を示します-

Sr.No. Property & Description
1

Count

BitArrayに含まれる要素の数を取得します。

2

IsReadOnly

BitArrayが読み取り専用かどうかを示す値を取得します。

3

Item

BitArrayの特定の位置にあるビットの値を取得または設定します。

4

Length

BitArrayの要素の数を取得または設定します。

次の表に、 BitArray クラスで一般的に使用される*メソッド*の一部を示します-

Sr.No. Method & Description
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の対応する要素に対してビットごとの排他的OR演算を実行します。

次の例は、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