C # - Clase BitArray
La clase BitArray administra una matriz compacta de valores de bits, que se representan como booleanos, donde verdadero indica que el bit está activado (1) y falso indica que el bit está desactivado (0).
Se utiliza cuando necesita almacenar los bits pero no conoce el número de bits de antemano. Puede acceder a elementos de la colección BitArray mediante un índice entero, que comienza desde cero.
Métodos y propiedades de la clase BitArray
La siguiente tabla enumera algunos de los properties del BitArray clase -
No Señor. | Descripción de propiedad |
---|---|
1 | Count Obtiene el número de elementos contenidos en BitArray. |
2 | IsReadOnly Obtiene un valor que indica si BitArray es de solo lectura. |
3 | Item Obtiene o establece el valor del bit en una posición específica en BitArray. |
4 | Length Obtiene o establece el número de elementos de BitArray. |
La siguiente tabla enumera algunos de los methods del BitArray clase -
No Señor. | Método y descripción |
---|---|
1 | public BitArray And(BitArray value); Realiza la operación AND bit a bit en los elementos del BitArray actual contra los elementos correspondientes en el BitArray especificado. |
2 | public bool Get(int index); Obtiene el valor del bit en una posición específica en BitArray. |
3 | public BitArray Not(); Invierte todos los valores de bits en el BitArray actual, de modo que los elementos establecidos en verdadero se cambian a falso y los elementos establecidos en falso se cambian a verdadero. |
4 | public BitArray Or(BitArray value); Realiza la operación OR bit a bit en los elementos del BitArray actual contra los elementos correspondientes en el BitArray especificado. |
5 | public void Set(int index, bool value); Establece el bit en una posición específica en BitArray al valor especificado. |
6 | public void SetAll(bool value); Establece todos los bits de BitArray en el valor especificado. |
7 | public BitArray Xor(BitArray value); Realiza la operación OR eXclusiva bit a bit en los elementos en el BitArray actual contra los elementos correspondientes en el BitArray especificado. |
Ejemplo
El siguiente ejemplo demuestra el uso de la clase 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();
}
}
}
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
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