Java-program til at konvertere binær kode for et tal til dets ækvivalente Gray's-kode ved hjælp af rekursion
I denne tutorial lærer vi, hvordan man konverterer tallets binære kode til dets tilsvarende Grays kode ved hjælp af rekursion. Grå kode er et binært talsystem, hvor to på hinanden følgende værdier kun adskiller sig på én bit. En rekursiv funktion er en funktion, der kalder sig selv. Men før du går videre, hvis du ikke er bekendt med de grundlæggende begreber for metoder i java, så tjek artiklen om emnet metoder i java.
Input: Indtast det binære tal:1110
Output: Den tilsvarende grå kode er:1001
Program 1:Konverter binær kode for et tal til dets ækvivalente Gray's-kode ved hjælp af rekursion
I dette eksempel vil vi se, hvordan man konverterer tallets binære kode til dets tilsvarende Grays kode ved hjælp af rekursion, når tallet er inden for heltalsgrænsen.
Algorithme:
- Start
- Opret en forekomst af scannerklassen.
- Deklarer en variabel for at gemme det binære tal.
- Bed brugeren om at initialisere variablen.
- Erklær en brugerdefineret metode til at konvertere binær kode til grå kode.
- Hvis tallet er 0, så returner 0.
- Udtræk det sidste og næstsidste ciffer.
- Hvis de sidste to bits er modsatte af hinanden, så er grå =1 + (10 * binærTilGrå(tal/10)).
- Hvis de sidste to bits er ens, så er grå =10 * binærTilGrå(tal/10)
- Vis resultatet.
- Stop
Nedenstående eksempel illustrerer implementeringen af ovenstående algoritme.
//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));
}
}
Indtast det binære tal:1101
Grå kode er 1011
Program 2:Konverter binær kode for et tal til dets ækvivalente Gray's-kode ved hjælp af rekursion
I dette eksempel vil vi se, hvordan man konverterer tallets binære kode til dets tilsvarende Grays kode ved hjælp af rekursion, når store binære tal indtastes.
Algorithme:
- Start
- Opret en forekomst af scannerklassen.
- Deklarer en variabel for at gemme det binære tal i strengformat.
- Bed brugeren om at initialisere variablen.
- Deklarer en brugerdefineret funktion til at finde xor for to tal.
- Kald rekursivt funktionen for at finde den grå kode for det indtastede nummer.
- Vis resultatet.
- Stop
Nedenstående eksempel illustrerer implementeringen af ovenstående algoritme.
//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 + "");
}
}
Indtast binært tal:1110011
Grå kode er 1001010