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:
- Importe la clase BitSet del paquete java.util.
- 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.
- Ahora, al usar los métodos proporcionados por la clase BitSet, podemos manipular la array.
- Los métodos de la clase BitSet son set, clear, xor, or, and.
- 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