C#のドットアレイ(BitArray)
BitArrayクラスが真(0)オフになっているビットは、(1)、偽の表現のビットであるかを示すブール値を、使用してビット値のコンパクトな配列を、管理しています。
あなたはビットを格納する必要があるとき、私はドットの配列を使用して、事前にビット数を知りません。 あなたは最初から、収集ポイントからインデックスを配列にアクセスするために整数のインデックスを使用することができます 。
クラスメソッドとプロパティBitArray
次の表は、共通属性BitArrayクラスのいくつかを示しています。
属性 | 描述 |
---|---|
Count | 获取 BitArray 中包含的元素个数。 |
IsReadOnly | 获取一个值,表示 BitArray 是否只读。 |
Item | 获取或设置 BitArray 中指定位置的位的值。 |
Length | 获取或设置 BitArray 中的元素个数。 |
次の表は、BitArrayクラス一般的な方法のいくつかを示しています。
序号 | 方法名 & 描述 |
---|---|
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)を使用する例を示します。
システムを用いました。 System.Collectionsを使用しました。 名前空間のCollectionsApplication { クラスプログラム { 静的な無効メイン(文字列[] args) { //サイズの2つの配列を作成します8点BitArray BA1 =新しいBitArray(8); BitArray BA2 =新しいBitArray(8); バイト[] = {60}; バイト[] B = {13}; // 60の値と、13店舗ポイントアレイBA1 =新しいBitArray(a)は、 BA2 =新しいBitArray(b)は、 Console.WriteLineを(「ビットアレイBA1:60 ")の// Ba1を内容。 以下のために(int型私= 0;私<ba1.Count; iは++) { Console.Write( "{0、-6}"、BA1 [i])と、 } Console.WriteLineを(); Console.WriteLineを(「ビットアレイBA2:13 ")の// Ba2と内容。 以下のために(int型私= 0;私<ba2.Count; iは++) { Console.Write( "{0、-6}"、BA2 [i])と、 } Console.WriteLineを(); BitArray BA3 =新しいBitArray(8); BA3 = ba1.And(BA2)。 // BA3ます。Console.WriteLineの内容(「ビットアレイBA3後のAND演算:12 "); 以下のために(int型私= 0;私<ba3.Count; iは++) { Console.Write( "{0、-6}"、BA3 [i])と、 } Console.WriteLineを(); BA3 = ba1.Or(BA2)。 // BA3ます。Console.WriteLineの内容(「ビットアレイBA3後のOR演算:61 "); 以下のために(int型私= 0;私<ba3.Count; iは++) { Console.Write( "{0、-6}"、BA3 [i])と、 } Console.WriteLineを(); Console.ReadKey()。 } } }
上記のコードはコンパイルされ、実行されると、次の結果を生成します。
ビット配列BA1:60 偽偽真真真真偽偽 ビット配列BA2:13 真偽真真偽偽偽偽 ビット配列の後BA3 AND演算:12 偽偽真真偽偽偽偽 OR演算後のビット列BA3:61 真偽真真偽偽偽偽