Hallo,
ich bräuchte mal wieder Hilfe in Sachen Java-Implementierung. Und zwar soll ich eine Funktion public static int toGray(int n) implementieren, die für eine positive natürliche Zahl n < 2^31 die zugehörige Gray-Bit-Darstellung berechnet.
d.h. z.B. für n = 5 ist der Graycode 0111 und somit das Ergebnis 7.
Ich habe mir überlegt, den eingegebenen Wert n (Integer) zunächst über die Funktion Integer.toBinaryString(...) in den entsprechenden Binärcode umzuwandeln, um diesen dann in den Graycode umzuwandeln, dann die Gray-Bit-Darstellung zu berechnen. (ist vielleicht etwas zu umständlich, aber das war zumindest erstmal mein Ansatz...)
Bisher sieht das so aus:
An der besagten Stelle komme ich nicht weiter. Es gibt ja die Funktion IndexOf(...), die mir den Index eines gesuchten Teilstrings angibt. Jedoch bräuchte ich ja hier eine Umkehrfunktion dazu, d.h. eine Funktion, die den Wert des Teilstrings ausliest an einem bestimmten Index.
Ich freue mich über Antworten
MfG
Benjamin
ich bräuchte mal wieder Hilfe in Sachen Java-Implementierung. Und zwar soll ich eine Funktion public static int toGray(int n) implementieren, die für eine positive natürliche Zahl n < 2^31 die zugehörige Gray-Bit-Darstellung berechnet.
d.h. z.B. für n = 5 ist der Graycode 0111 und somit das Ergebnis 7.
Ich habe mir überlegt, den eingegebenen Wert n (Integer) zunächst über die Funktion Integer.toBinaryString(...) in den entsprechenden Binärcode umzuwandeln, um diesen dann in den Graycode umzuwandeln, dann die Gray-Bit-Darstellung zu berechnen. (ist vielleicht etwas zu umständlich, aber das war zumindest erstmal mein Ansatz...)
Bisher sieht das so aus:
Java:
public class Gray {
static int N;
public static void main (String[] args)
{
N = Integer.parseInt(args[0]);
toGray(N);
}
public static int toGray(int n)
{
String x = Integer.toBinaryString(N);
//Ansatz Graycode-Berechnung:
//hier Teilstring an einer bestimmten Stelle (Index) auslesen und vergleichen, d.h.
//wenn die Ziffer gleich ihrer Vorgängerziffer ist -> 0, sonst -> 1
//dann alle ermittelten Zahlen zusammen => Graycode
//dann diese Darstellung wieder in eine Dezimalzahl (int) umwandeln und zurückgeben
return n;
}
}
An der besagten Stelle komme ich nicht weiter. Es gibt ja die Funktion IndexOf(...), die mir den Index eines gesuchten Teilstrings angibt. Jedoch bräuchte ich ja hier eine Umkehrfunktion dazu, d.h. eine Funktion, die den Wert des Teilstrings ausliest an einem bestimmten Index.
Ich freue mich über Antworten
MfG
Benjamin