Java >> Tutoriel Java >  >> Java

Programme Java pour convertir le code binaire en code Gray sans utiliser la récursivité

Dans ce didacticiel, nous allons apprendre à convertir le code binaire du nombre en son équivalent en code de Gray sans utiliser la récursivité. Le code Gray est un système de numération binaire dans lequel deux valeurs successives diffèrent d'un seul bit. Mais avant d'aller de l'avant, si vous n'êtes pas familier avec les concepts de base des méthodes en Java, consultez l'article sur les méthodes de sujet en Java.

Saisie : Saisissez le nombre binaire :1110

Sortie : Le code gris équivalent est :1001

Regardons les exemples pour une meilleure compréhension.

Programme 1 :Convertir le code binaire d'un nombre en son équivalent en code de Gray sans utiliser la récursivité

Dans cet exemple, nous allons voir comment convertir le code binaire du Nombre en son équivalent en code de Gray sans utiliser la récursivité.

Algorithme :

  1. Commencer
  2. Créez une instance de la classe Scanner.
  3. Déclarez une variable pour stocker le nombre binaire.
  4. Demandez à l'utilisateur d'initialiser la variable.
  5. Déclarez une méthode définie par l'utilisateur pour convertir le code binaire en code Gray.
  6. Itérer sur tous les bits de la chaîne.
  7. Effectuez XOR sur le bit précédent et le bit actuel de la chaîne binaire.
  8. Répétez le processus jusqu'à ce que tous les bits de la chaîne soient couverts.
  9. Imprimez le résultat.
  10. Arrêtez.

L'exemple ci-dessous illustre l'implémentation de l'algorithme ci-dessus.

//Java Program to Convert Binary Code Into 
//Equivalent Gray Code Without Using Recursion
import java.util.*;
  
public class Main 
{
  public static void toGray(String str)
    {
        // a String varaible to store the obtained gray string.
        String gray = new String();
        gray += str.charAt(0);
        for (int i = 1; i < str.length(); i++)
        {
            // perform XOR on the prevous bit and the
            // current bit of the binary string
         gray += (Integer.parseInt(String.valueOf(str.charAt(i - 1))) ^ 
                   Integer.parseInt(String.valueOf(str.charAt(i))));
            
        }
        System.out.println("The equivalent gray code is : " + gray);
    }
    
    // Driver Program
    public static void main(String args[])
    {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter the Binary number:");
        String str = sc.nextLine();
        toGray(str);
    }
}


Entrez le nombre binaire :111011001
Le code gris équivalent est :100110101

Programme 2 :Convertir le code binaire d'un nombre en son équivalent en code de Gray sans utiliser la récursivité

Dans cet exemple, nous allons voir comment convertir le code binaire du Nombre en son équivalent en code de Gray sans utiliser la récursivité.

Algorithme :

  1. Commencer
  2. Créez une instance de la classe Scanner.
  3. Déclarez une variable pour stocker le nombre binaire.
  4. Demandez à l'utilisateur d'initialiser la variable.
  5. Déclarez une méthode définie par l'utilisateur pour convertir le code binaire en code Gray.
  6. Tout d'abord, parcourez tous les caractères de la chaîne.
  7. Déclarez une autre fonction distincte définie par l'utilisateur qui renverra le XOR de deux nombres.
  8. Répétez les étapes jusqu'à ce que la valeur xor soit trouvée pour tous les bits de la chaîne.
  9. Afficher la sortie.
  10. Arrêtez.

L'exemple ci-dessous illustre l'implémentation de l'algorithme ci-dessus.

//Java Program to Convert Binary Code Into 
//Equivalent Gray Code Without Using Recursion
import java.util.*;
  
public class Main 
{
    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 str)
    {
        String gray = new String();
        gray += str.charAt(0);
        // for all the other bits, traverse through the
        // binary string
        for (int i = 1; i < str.length(); i++)
        {
            // calling xOR() method on the prevous bit and
            // the current bit of the binary string
            gray += xOR(str.charAt(i - 1), str.charAt(i));
        }
        System.out.println("The equivalent gray code is : " + gray);
    }
    // Driver Program
    public static void main(String args[])
    {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter the Binary number:");
        String str = sc.nextLine();
        toGray(str);
    }
}


Entrez le nombre binaire :100011001
Le code gris équivalent est :110010101


Balise Java