C# | AND bit a bit entre los elementos de BitArray – Part 1

La clase BitArray administra una array compacta de valores de bits, que se representan como valores booleanos, donde verdadero indica que el bit está activado , es decir, 1 y falso indica que el bit está desactivado , es decir, 0 . Esta clase está contenida en el espacio de nombres System.Collections .
El método BitArray.And(BitArray) se usa para realizar la operación AND bit a bit entre los elementos del objeto BitArray actual y los elementos correspondientes en la array especificada.
El objeto BitArray actual se modificará para almacenar el resultado de la operación AND bit a bit.

Propiedades:

  • La clase BitArray es una clase de colección en la que la capacidad es siempre la misma que la cuenta.
  • Los elementos se agregan a un BitArray aumentando la propiedad Longitud .
  • Los elementos se eliminan al disminuir la propiedad Longitud .
  • La clase BitArray proporciona métodos como And, Or, Xor, Not y SetAll.
  • Se puede acceder a los elementos de esta colección mediante un índice entero. Los índices de esta colección están basados ​​en cero.

Sintaxis:

public System.Collections.BitArray And (System.Collections.BitArray value);

Aquí, el valor es la array con la que realizar la operación AND bit a bit.

Valor devuelto: Devuelve una array que contiene el resultado de la operación AND bit a bit, que es una referencia al objeto BitArray actual.

Excepciones:

  • ArgumentNullException: si el valor es nulo.
  • ArgumentException: si el valor y el BitArray actual no tienen el mismo número de elementos.

A continuación se dan algunos ejemplos para entender la implementación de una mejor manera:

Ejemplo 1:

// C# code to do bitwise
// AND between BitArray
using System;
using System.Collections;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a BitArray
        BitArray myBitArr1 = new BitArray(4);
  
        // Creating a BitArray
        BitArray myBitArr2 = new BitArray(4);
  
        // Initializing values in myBitArr1
        myBitArr1[0] = false;
        myBitArr1[1] = false;
        myBitArr1[2] = true;
        myBitArr1[3] = true;
  
        // Initializing values in myBitArr2
        myBitArr2[0] = false;
        myBitArr2[2] = false;
        myBitArr2[1] = true;
        myBitArr2[3] = true;
  
        // function calling
        PrintValues(myBitArr1.And(myBitArr2));
    }
  
    // Displaying the result
    public static void PrintValues(IEnumerable myList)
    {
        foreach(Object obj in myList)
        {
            Console.WriteLine(obj);
        }
    }
}

Producción:

False
False
False
True

Ejemplo 2:

// C# code to do bitwise
// AND between BitArray
using System;
using System.Collections;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a BitArray
        BitArray myBitArr1 = new BitArray(4);
  
        // Creating a BitArray
        BitArray myBitArr2 = new BitArray(6);
  
        // Initializing values in myBitArr1
        myBitArr1[0] = false;
        myBitArr1[1] = false;
        myBitArr1[2] = true;
        myBitArr1[3] = true;
  
        // Initializing values in myBitArr2
        myBitArr2[0] = false;
        myBitArr2[2] = false;
        myBitArr2[1] = true;
        myBitArr2[3] = true;
        myBitArr2[4] = true;
        myBitArr2[5] = true;
  
        // function calling
        // This should raise "ArgumentException"
        // as array lengths are not same
        PrintValues(myBitArr1.And(myBitArr2));
    }
  
    // Displaying the result
    public static void PrintValues(IEnumerable myList)
    {
        foreach(Object obj in myList)
        {
            Console.WriteLine(obj);
        }
    }
}

Error de tiempo de ejecución:

Excepción no controlada:
System.ArgumentException: las longitudes de array deben ser las mismas.

Nota:

  • La operación AND bit a bit devuelve verdadero si ambos operandos son verdaderos y devuelve falso si uno o ambos operandos son falsos.
  • Este método es una operación O(n), donde n es Count.

Referencia:

Publicación traducida automáticamente

Artículo escrito por Sahil_Bansall y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *