Dezinal in Binär Recursiv

Adriano10

Bekanntes Mitglied
Java:
public String getBinaryRecursive(int number) {
        String binary = "";
        if (number % 2 == 1) {
            binary = binary + "1";

        }

        if (number % 2 == 0) {
            binary = binary + "0";

        }

        if (number > 1) {
            getBinaryRecursive(number / 2);
        }
        return binary;
    }
Ich möchte mit Recursion klar kommen, daher mache ich kleine Aufgaben, in diesem Fall wird immer 1 ausgegeben. Wenn ich in diese Zeilen 5 und 10 System.out.print(binary) einfüge, dann ist richtige Ausgabe 10111.
 

Adriano10

Bekanntes Mitglied
Vielen Dank für die nette Antwort, das ist jetzt klar, woran das liegt. Wenn du für mich Vorschläge hättest, wie ich Code umschreiben soll, um gewünschtes Ergebnis zu bekommen, würde mir sehr geholfen. Vielen Dank im Voraus
 

mihe7

Top Contributor
Ich möchte mit Recursion klar kommen, daher mache ich kleine Aufgaben
Sehr schön.

Erstmal schauen, wie das auf dem Papier funktioniert:

Code:
8:2 = 4 Rest 0
4:2 = 2 Rest 0
2:2 = 1 Rest 0
1:2 = 0 Rest 1

Das ist auch schon der rekursive Abstieg, der endet, wenn das Ergebnis der ganzzahligen Division 0 ist. Am Ende werden die Reste von unten nach oben zu einem binären Wort zusammengesetzt: 1000 - das entspricht dem rekursiven Aufstieg.

Noch genauer betrachtet steigen wir erstmal ab, bis das Ergebnis der ganzzahligen Division 0 ist. Dann ermitteln wir in jedem Schritt die binäre Ziffer (Rest) und hängen sie an die bisher ermittelten.


Mal ganz ausführlich:
Java:
public static String getBinaryRecursive(int number) {
    String word = "";
    if (number > 1) {
        word = getBinaryRecursive(number / 2);
    }
  
    String digit = "1";
    if (number % 2 == 0) {
        digit = "0";
    }
    return word + digit;
}
und kurz:

Java:
public static String getBinaryRecursive(int number) {
    String word = number > 1 ? getBinaryRecursive(number / 2) : "";
    String digit = number % 2 == 0 ? "0" : "1";
    return word + digit;
}
 

Adriano10

Bekanntes Mitglied
Sehr schön.

Erstmal schauen, wie das auf dem Papier funktioniert:

Code:
8:2 = 4 Rest 0
4:2 = 2 Rest 0
2:2 = 1 Rest 0
1:2 = 0 Rest 1

Das ist auch schon der rekursive Abstieg, der endet, wenn das Ergebnis der ganzzahligen Division 0 ist. Am Ende werden die Reste von unten nach oben zu einem binären Wort zusammengesetzt: 1000 - das entspricht dem rekursiven Aufstieg.

Noch genauer betrachtet steigen wir erstmal ab, bis das Ergebnis der ganzzahligen Division 0 ist. Dann ermitteln wir in jedem Schritt die binäre Ziffer (Rest) und hängen sie an die bisher ermittelten.


Mal ganz ausführlich:
Java:
public static String getBinaryRecursive(int number) {
    String word = "";
    if (number > 1) {
        word = getBinaryRecursive(number / 2);
    }
 
    String digit = "1";
    if (number % 2 == 0) {
        digit = "0";
    }
    return word + digit;
}
und kurz:

Java:
public static String getBinaryRecursive(int number) {
    String word = number > 1 ? getBinaryRecursive(number / 2) : "";
    String digit = number % 2 == 0 ? "0" : "1";
    return word + digit;
}
Vielen Dank, sehr gut erklärt… Vielen vielen Dank
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Binär zu Dezimal Java Basics - Anfänger-Themen 16
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
W Dez-->Binär mit eigener bit Anzahl Erkennung. Java Basics - Anfänger-Themen 3
parrot Binär Addieren Java Basics - Anfänger-Themen 21
J Dezimal in Binär (Array) Java Basics - Anfänger-Themen 2
F Erste Schritte Binär zahle auf 8 stellen aufüllen Java Basics - Anfänger-Themen 2
Orkanson Long Binär darstellen Java Basics - Anfänger-Themen 1
W Dezimalzahl in Binär umwandeln - Was sollte ich an meinem Programm verbessern? Java Basics - Anfänger-Themen 5
L String in Binär umwandeln Java Basics - Anfänger-Themen 4
Z Dezimal > Binär-Umrechnung Logikfehler? Java Basics - Anfänger-Themen 8
K Erste Schritte Dezimal in binär Java Basics - Anfänger-Themen 17
S Umwandlung Binär in Dezimal (ohne array etc.) Java Basics - Anfänger-Themen 6
ubaro1 Operatoren Der Tide Operator und positive Ganzzahlen in Binär Java Basics - Anfänger-Themen 1
V Binär in Dezimal Java Basics - Anfänger-Themen 4
T Erste Schritte Nachkommstellen in Binär mit Vekotoren Java Basics - Anfänger-Themen 3
S Umrechner (Dezimal, Hexadezimal und Binär) Java Basics - Anfänger-Themen 3
M hexadezimal in binär mit Hilfe von Shift-Operatoren Java Basics - Anfänger-Themen 6
R Dezimalzahlen zu Binär Java Basics - Anfänger-Themen 3
B datentyp in binär umwandeln Java Basics - Anfänger-Themen 5
S binär string Java Basics - Anfänger-Themen 10
N Binär suchen: Java Basics - Anfänger-Themen 4
E Methoden umrechnung binär/oktal/hexadezimal in dezimalsystem (Methode) Java Basics - Anfänger-Themen 1
A double and add algorithmus für elliptische kurven/ integer binär darstellen Java Basics - Anfänger-Themen 14
K Binär Logisch Und, logisch Oder, subtrahieren Java Basics - Anfänger-Themen 8
G Binär in Byte speichern Java Basics - Anfänger-Themen 7
C dezimal in binär Java Basics - Anfänger-Themen 3
eLogic .txt Testdatei to Binär Java Basics - Anfänger-Themen 2
M Binär -> Dezimal Java Basics - Anfänger-Themen 11
N Umrechung Binär in Dezimal und Hexadezimal Java Basics - Anfänger-Themen 7
F Hex zu Binär Java Basics - Anfänger-Themen 7
Shanks Problem bei Binär überprüfung Java Basics - Anfänger-Themen 3
S Array Daten in Binär Datei schreiben/lesen Java Basics - Anfänger-Themen 11
B Dezimal Binär? Java Basics - Anfänger-Themen 10
H Java Double in Binär, Hex oder Octalzahl wandeln Java Basics - Anfänger-Themen 3
JeromeM90 (Brauche Hilfe) Binär- in Dezimalzahlkonverter Java Basics - Anfänger-Themen 8
N Binär Datei kopieren Java Basics - Anfänger-Themen 2
R Unicode-Wert in Binär und Dezimal umformen - kleines Problem Java Basics - Anfänger-Themen 1
T longs binär verarbeiten Java Basics - Anfänger-Themen 4
G Objekte binär speichern und später wieder einlesen? Java Basics - Anfänger-Themen 7
G char[] binär schreiben? Java Basics - Anfänger-Themen 2
V Binär + Hexadezimal Java Basics - Anfänger-Themen 3
V String mit Hexadezimalzahlen in Binär umwandeln Java Basics - Anfänger-Themen 2
A Binär-Datei versenden übers Internet Java Basics - Anfänger-Themen 2
C Hilfe bei Umrechnung von dezimal nach binär Java Basics - Anfänger-Themen 9
R String nach Binär-Form Java Basics - Anfänger-Themen 3
X im Verzeichnissbaum recursiv nur bestimmte Dateien finden Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben