C # - classe BitArray
A classe BitArray gerencia uma matriz compacta de valores de bit, que são representados como booleanos, onde true indica que o bit está ativado (1) e false indica que o bit está desativado (0).
É usado quando você precisa armazenar os bits, mas não sabe o número de bits com antecedência. Você pode acessar itens da coleção BitArray usando um índice inteiro, que começa do zero.
Métodos e propriedades da classe BitArray
A tabela a seguir lista alguns dos comumente usados properties do BitArray classe -
Sr. Não. | Descrição da Propriedade |
---|---|
1 | Count Obtém o número de elementos contidos no BitArray. |
2 | IsReadOnly Obtém um valor que indica se o BitArray é somente leitura. |
3 | Item Obtém ou define o valor do bit em uma posição específica no BitArray. |
4 | Length Obtém ou define o número de elementos no BitArray. |
A tabela a seguir lista alguns dos comumente usados methods do BitArray classe -
Sr. Não. | Método e Descrição |
---|---|
1 | public BitArray And(BitArray value); Executa a operação bit a bit AND nos elementos do BitArray atual em relação aos elementos correspondentes no BitArray especificado. |
2 | public bool Get(int index); Obtém o valor do bit em uma posição específica no BitArray. |
3 | public BitArray Not(); Inverte todos os valores de bit no BitArray atual, de forma que os elementos definidos como verdadeiros sejam alterados para falsos e os elementos definidos como falsos sejam alterados para verdadeiros. |
4 | public BitArray Or(BitArray value); Executa a operação OR bit a bit nos elementos do BitArray atual em relação aos elementos correspondentes no BitArray especificado. |
5 | public void Set(int index, bool value); Define o bit em uma posição específica no BitArray para o valor especificado. |
6 | public void SetAll(bool value); Define todos os bits no BitArray com o valor especificado. |
7 | public BitArray Xor(BitArray value); Executa a operação bit a bit eXclusive OR nos elementos do BitArray atual em relação aos elementos correspondentes no BitArray especificado. |
Exemplo
O exemplo a seguir demonstra o uso da classe 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();
}
}
}
Quando o código acima é compilado e executado, ele produz o seguinte 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