Programa Java para convertir código binario en código gris sin usar recursividad

El código binario de un número es la representación de un número en el sistema numérico binario (base 2). En el sistema numérico binario, cada número se expresa usando solo dos literales (0 y 1). Cada uno de estos literales se llama un bit . El sistema numérico binario es muy útil en circuitos electrónicos digitales.

El Código Gray de un número es la representación de un número usando literales binarios. Pero la diferencia entre el código binario y el código Gray es que, en el código Gray, cada par de números consecutivos difiere solo en un bit. Los códigos grises son muy útiles para la implementación de K-Maps y la corrección de errores.

Ejemplo:

Binary -> 0100
Gray   -> 0110
   
Binary -> 0101
Gray   -> 0111

Un código Gray se puede convertir en un código binario y viceversa. 

Conversión de binario a gris:

Un código binario se puede convertir en su código Gray equivalente como:

  • El MSB (bit más significativo) del código binario será el MSB del código Gray equivalente.
  • Todos los bits restantes se obtienen realizando la operación XOR en el bit en esa posición con el bit en la posición anterior en la string binaria.
Example:
Binary ->  0011010101
           0 XOR 0 XOR 1 XOR 1 XOR 0 XOR 1 XOR 0 XOR 1 XOR 0 XOR 1
           ↓  ↓     ↓     ↓     ↓     ↓     ↓     ↓     ↓     ↓
Gray   ->  0  0     1     0     1     1     1     1     1     1
   
   
Binary ->  0100110
Gray   ->  0110101

Código 1:

Usamos ‘^’ para realizar la operación Xor convirtiendo la string en un valor entero usando la función Integer.parseInt() y luego realizando xor n ellos.

Java

// Java program to demonstrate Binary
// to Gray conversion
 
import java.io.*;
 
class GFG {
 
    // converts the given binary string into its equivalent
    // gray code
    public static void toGray(String binary)
    {
        // a String variable to store the obtained gray
        // string.
        // the MSB of the gray code is the same as
        // the MSB of the binary string, i.e., binary[0]
        String gray = new String();
 
        gray += binary.charAt(0);
 
        
        for (int i = 1; i < binary.length(); i++)
        {
            // perform XOR on the previous bit and the
            // current bit of the binary string
         gray += (Integer.parseInt(String.valueOf(binary.charAt(i - 1))) ^
                   Integer.parseInt(String.valueOf(binary.charAt(i))));
           
        }
 
        System.out.println("The gray code of " + binary
                           + " is : " + gray);
    }
 
     
    public static void main(String[] args)
    {
        // a String variable to store the given binary
        // string
        String binary = "0011010101";
 
        toGray(binary);
    }
}
Producción

The gray code of 0011010101 is : 0010111111

Código 2:

Creamos una función separada definida por el usuario llamada xOR(char a, char b) que nos devuelve el xor de dos números a y b. 

Java

// Java program to demonstrate Binary
// to Gray conversion
 
import java.io.*;
 
class GFG {
   
    // an auxiliary method to perform XOR on two given
    // literals
    public static int xOR(char a, char b)
    {
        // return 1 if both bits are not same
        if (a != b)
            return 1;
       
        // else return 0
        return 0;
    }
   
    // converts the given binary string into its equivalent
    // gray code
    public static void toGray(String binary)
    {
       
        String gray = new String();
       
        gray += binary.charAt(0);
       
        // for all the other bits, traverse through the
        // binary string
        for (int i = 1; i < binary.length(); i++)
        {
            // calling xOR() method on the previous bit and
            // the current bit of the binary string
            gray += xOR(binary.charAt(i - 1),
                        binary.charAt(i));
        }
       
        System.out.println("The gray code of " + binary
                           + " is : " + gray);
    }
 
    // Driver method
    public static void main(String[] args)
    {
        // a String variable to store the given binary
        // string
        String binary = "0011010101";
       
        toGray(binary);
       
    }
}
Producción

The gray code of 0011010101 is : 0010111111

Publicación traducida automáticamente

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