[Brainfuck] Erklärung

  • Hi.

    Ich wollte euch mal brainfuq erklären.
    Zunächst: https://de.wikipedia.org/wiki/Brainfuck

    Wir schreiben den Text "Hallo"

    Was wir brauchen? http://stefan-lenz.ch/_pics/11/ascii.png & http://www.splitbrain.org/_static/ook/
    Wie gehen wir das an?
    -> Wir suchen uns erstmal alle wichtigen Ziffern raus: H > 72, a > 97, l > 108 & o > 111

    [0][0][0][0][0][0]
    Das sind unsere 7 Slots die wir zur Verfügung haben, wobei wir nicht alle benutzen werden!

    Erstellen wir nun das große "h":
    +++[>+++[>++[>++[>++<-]<-]<-]<-]>>>>.
    3 x 3 x 2 x 2 x 2
    Der Punkt dient als Ausgabe.

    Derzeit ist der Wert von unserem 4. Slot 72. Dazu müssen wir 25 addieren um auf das kleine "a" (97) zu kommen.
    Also erweitern wir folgendes:
    <+++++[>+++++<-]>.
    5 x 5
    Punkt dient wieder als Ausgabe.

    Da wir nur vor & zurück gegangen sind, um jeweils einen Schritt, sind wir immer noch im gleichen Slot, der nun den Wert 97 hat.
    Als nächstes addieren wir 11.
    <++[>+++++<-]>+.
    2 x 5 + 1
    Punkt = Ausgabe.

    Nun ist der Slot auf 108. Da ein "Hallo" zwei l hat, wäre es sinnlos etwas zu addieren oder subtrahieren, weshalb wir erneut einen Punkt schreiben!
    .

    Zuletzt folgt das o:
    +++.

    Der vollständige Code lautet nun:

    Brainfuck
    +++[>+++[>++[>++[>++<-]<-]<-]<-]>>>>.<+++++[>+++++<-]>.<++[>+++++<-]>+..+++.

    Beim Testen kommt heraus, dass er als Ergebnis "Hallo" hat - so wie wir es wollten.

    Wenn es Fragen gibt immer her damit!

    (PS: Bin noch am lernen, weshalb ich keine krasse Auskunft geben kann und auch nicht 100%ig bestätige, dass alles was ich verfasst habe legitim ist.)

    MfG

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!