Programme Java pour convertir le code binaire d'un nombre en son équivalent Gray's Code à l'aide de la récursivité
Dans ce didacticiel, nous allons apprendre à convertir le code binaire du nombre en son équivalent en code de Gray à l'aide de 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. Une fonction récursive est une fonction qui s'appelle elle-même. 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.
Entrée : Saisissez le nombre binaire :1110
Sortie : Le code gris équivalent est :1001
Programme 1 :Convertir le code binaire d'un nombre en son équivalent en code de Gray à l'aide de la récursivité
Dans cet exemple, nous verrons comment convertir le code binaire du nombre en son équivalent en code de Gray en utilisant la récursivité lorsque le nombre est dans la limite des nombres entiers.
Algorithme :
- Démarrer
- Créez une instance de la classe Scanner.
- Déclarez une variable pour stocker le nombre binaire.
- Demandez à l'utilisateur d'initialiser la variable.
- Déclarez une méthode définie par l'utilisateur pour convertir le code binaire en code Gray.
- Si le nombre est 0, alors renvoie 0.
- Extraire le dernier et l'avant-dernier chiffre.
- Sinon, si les deux derniers bits sont opposés, alors gray =1 + (10 * binaryToGray(number/10)).
- Sinon si les deux derniers bits sont identiques alors gray =10 * binaryToGray(number/10)
- Afficher le résultat.
- Arrêter
L'exemple ci-dessous illustre l'implémentation de l'algorithme ci-dessus.
//Java Program to Convert Binary Code Into
//Equivalent Gray Code Using Recursion
import java.util.*;
public class Main
{
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
System.out.println("Enter the binary number: ");
int bNumber = sc.nextInt();
int res = bToGray(bNumber);
System.out.println("Gray Code is " + res);
}
public static int bToGray(int num)
{
if (num == 0)
{
return 0;
}
// Extracting the last digit
int x1 = num % 10;
// Extracting the second last digit
int x2 = (num / 10) % 10;
// Else If last two digits
// are opposite bits to each other
if ((x1 & ~x2) == 1 || (~x1 & x2) == 1) {
return (1 + 10 * bToGray(num / 10));
}
// Else If the last
// two bits are same
return (10 * bToGray(num / 10));
}
}
Entrez le nombre binaire :1101
Le code gris est 1011
Programme 2 :Convertir le code binaire d'un nombre en son équivalent en code de Gray à l'aide de la récursivité
Dans cet exemple, nous verrons comment convertir le code binaire du Nombre en son équivalent en code de Gray en utilisant la récursivité lors de la saisie de grands nombres binaires.
Algorithme :
- Démarrer
- Créez une instance de la classe Scanner.
- Déclarez une variable pour stocker le nombre binaire au format chaîne.
- Demandez à l'utilisateur d'initialiser la variable.
- Déclarez une fonction définie par l'utilisateur pour trouver le xor de deux nombres.
- Appelez récursivement la fonction pour trouver le code gris du numéro saisi.
- Afficher le résultat.
- Arrêter
L'exemple ci-dessous illustre l'implémentation de l'algorithme ci-dessus.
//Java Program to Convert Binary Code Into
//Equivalent Gray Code Using Recursion
import java.util.*;
public class Main
{
public static char xor(char a, char b)
{
if (a == b)
return '0';
else
return '1';
}
// Recursive function Gray code conversion
public static char[] ans(char[] ch, String str, int i)
{
if (i == str.length())
return ch;
ch[i] = xor(str.charAt(i), str.charAt(i - 1));
i++;
return ans(ch, str, i);
}
// Driver Program
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
System.out.println("Enter Binary number:");
String str = sc.nextLine();
char[] ch = new char[str.length()];
ch[0] = str.charAt(0);
// Recursive function call
ans(ch, str, 1);
// Print Gray Code
System.out.print("Gray Code is ");
for (char i : ch)
System.out.print(i + "");
}
}
Entrez le nombre binaire :1110011
Le code gris est 1001010