Implementando Bit Matrix en Java

BitMatrix es una array bidimensional en la que cada elemento es 0 o 1. Implementaremos un BitMatrix que facilite las operaciones de bits básicas como OR, AND, XOR. 

Acercarse:

  1. Importe la clase BitSet del paquete java.util.
  2. Inicialice una array de bits de tamaño de filas x columnas usando BitSet. De forma predeterminada, todos los bits del conjunto tienen inicialmente el valor falso.
  3. Ahora, al usar los métodos proporcionados por la clase BitSet, podemos manipular la array.
  4. Los métodos de la clase BitSet son set, clear, xor, or, and.
  5. Muestre BitMatrix utilizando el método de visualización.

Java

// Java program to demonstrate the
// implementation of BitMatrix
 
import java.util.BitSet;
 
public class BitMatrix {
    public static void main(String[] args)
    {
 
        System.out.println("Bit Matrix Implementation");
 
        try {
            MatrixBuilder bmat = new MatrixBuilder(2, 2);
 
            // All the bitsets in the bitArray will be
            // displayed using display(). The values in
            // bitset refer to the columns which are set
            // to 1.
            bmat.set(0, 0);
            bmat.display();
 
            bmat.set(0, 1);
            bmat.display();
 
            bmat.set(1, 0);
            bmat.display();
 
            bmat.set(1, 1);
            bmat.display();
 
            bmat.clear(0, 1);
            bmat.display();
 
            bmat.and(0, 1);
            bmat.display();
 
            bmat.xor(0, 1);
            bmat.display();
 
            bmat.or(0, 1);
            bmat.display();
        }
        catch (Exception e) {
            System.out.println("Error due to " + e);
        }
    }
}
 
class MatrixBuilder {
    public BitSet[] bitArray;
 
    public MatrixBuilder(int rows, int cols)
    {
        // initializing a bit matrix of size rows x cols.
        bitArray = new BitSet[rows];
 
        int i = 0;
 
        while (i < rows) {
            bitArray[i] = new BitSet(cols);
            i++;
        }
    }
 
    // Method to clear entire array.
    public void clear()
    {
        // Getting the value of number of rows.
        int rows = bitArray.length;
 
        // Getting the value number of columns.
        int cols = bitArray[0].size();
 
        // To clear the bitArray Initialize it once again.
        bitArray = new BitSet[rows];
 
        int i = 0;
        while (i < rows) {
            bitArray[i] = new BitSet(cols);
            i++;
        }
    }
 
    // Method to XOR two rows
    public void xor(int row1, int row2)
    {
        bitArray[row1].xor(bitArray[row2]);
    }
 
    // Here clear() method is overloaded.
    // Method to clear specific bit.
    public void clear(int r, int c)
    {
        bitArray[r].clear(c);
    }
 
    // Method to get a specific bit
    public boolean get(int r, int c)
    {
        return bitArray[r].get(c);
    }
 
    // Method to set a specific bit
    public void set(int r, int c) { bitArray[r].set(c); }
 
    // Method to And two rows
    public void and(int row1, int row2)
    {
        bitArray[row1].and(bitArray[row2]);
    }
 
    // Method to OR two rows
    public void or(int row1, int row2)
    {
        bitArray[row1].or(bitArray[row2]);
    }
 
    // Method to display the bit matrix
    public void display()
    {
        System.out.println("\nBit Matrix : ");
 
        // Here each bitset can be referred as each row
        // we will print all the rows using for loop.
        for (BitSet bs : bitArray)
            System.out.println(bs);
 
        System.out.println();
    }
}
Producción

Bit Matrix Implementation

Bit Matrix : 
{0}
{}


Bit Matrix : 
{0, 1}
{}


Bit Matrix : 
{0, 1}
{0}


Bit Matrix : 
{0, 1}
{0, 1}


Bit Matrix : 
{0}
{0, 1}


Bit Matrix : 
{0}
{0, 1}


Bit Matrix : 
{1}
{0, 1}


Bit Matrix : 
{0, 1}
{0, 1}

Publicación traducida automáticamente

Artículo escrito por pulamolusaimohan 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 *