Code Post Bits

Binärcode

Das Binärsystem ist ein Zahlensystem. Du kennst sogar schon ein Zahlensystem: das Dezimalsystem. Aber es gibt auch noch andere Zahlensysteme, die heute ebenfalls noch Anwendung finden. Beispielsweise das römische Zahlensystem.

Beim Dezimal- und Binärsystem gibt es folgende Komponenten, die die jeweiligen Zahlensysteme allgemein beschreiben und definieren, aber wodurch man sie auch unterscheiden kann:

Das Dezimalsystem

Beim Dezimalsystem haben wir einen Zeichenvorrat von 10 Ziffern:

0 1 2 3 4 5 6 7 8 9

Mit diesen zehn Ziffern, welche die Basiszahl 10 ergeben, können wir alle uns bekannten Zahlen abbilden. Wenn wir eine Zahl darstellen wollen, die größer als die zur Verfügung stehend Ziffern ist, beispielsweise die Zehn, dann nutzen wir den Zeichenvorrat des Dezimalsystems und die Basiszahl um diese Zahl darzustellen.

Vorstellen kann man sich das wie bei dem Durchlauf auf einem Tacho:

Ausschnitt eines Tachos mit Hodometer
Bild eines Tachos mit Hodometer

Wenn die Neun erreicht ist, folgt darauf die Null. Die Position links vor der Neun wird um +1 erhöht. Dieses Muster findet in den meisten Zahlensystemen Anwendung.

0   1   2   3   4   5   6   7   8   9
10  11  12  13  14  15  16  17  18  19
20  21  22  23  24  25  26  27  28  29
...
100 101 102 103 104 105 106 107 108 109
...

Nehmen wir die Zahl 1337 als Beispiel um das Verfahren genauer zu beschreiben. Diese Zahl ist nichts anderes als eine Addition folgender Zahlen:

  1000      + 300       + 30     + 7
  Tausender + Hunderter + Zehner + Einer
= 1337

Wie bereits weiter oben erwähnt, beschreibt die Basiszahl eine bestimmte Wertigkeit einer Ziffer an einer bestimmten Stelle einer Zahl.

Die Ziffer, welche sich auf der rechten Seite der Zahl befindet, bei unserem Beispiel wäre das die Sieben (Einer), hat die Wertigkeit 1.
Die Ziffern nach links erhöhen ihre Wertigkeit bei jeder Stelle um 10.
Die erste Drei (Zehner) hat somit eine Wertigkeit von 10, die zweite Drei (Hunderter) eine Wertigkeit von 100 und die Eins (Tausender) hat die Wertigkeit 1000.

Die Wertigkeit der Ziffer wird mit der Ziffer selbst multipliziert:

  1 * 1000 + 3 * 100 + 3 * 10 + 7 * 1
= 1000     + 300     + 30     + 7
= 1337

Das Binärsystem

Beim Binärsystem haben wir einen Zeichenvorrat von 2 Ziffern:

0 1

Mit diesen zwei Ziffern, welche die Basiszahl 2 ergeben, können wir auch wieder alle Zahlen abbilden, nur eben im Binärsystem. Wenn wir eine Zahl darstellen wollen, die größer als die zur Verfügung stehend Ziffern ist, dann nutzen wir den Zeichenvorrat des Binärsystems und die Basiszahl um diese Zahl darzustellen:

0    1
10   11
100  101  110  111
1000 1001 1010 1011 1100 1101 1110 1111
...

Nehmen wir die Zahl 1100 als Beispiel um das Verfahren genauer zu beschreiben.

1        1        0        0
Achter   Vierer   Zweier   Einer

Wie bereits weiter oben erwähnt, beschreibt die Basiszahl eine bestimmte Wertigkeit einer Ziffer an einer bestimmten Stelle einer Zahl. Im Binärsystem ist die Basiszahl eine andere als die des Dezimalsystems.

Die Ziffer, welche sich auf der rechten Seite der Zahl befindet, bei unserem Beispiel wäre das die 0 (Einer), hat die Wertigkeit 1.
Die Ziffern nach links erhöhen ihre Wertigkeit bei jeder Stelle um 2.
Die nächste Null (Zweier) hat somit eine Wertigkeit von 2, die Eins (Vierer) eine Wertigkeit von 4 und die letzte Eins (Achter) hat die Wertigkeit 8.

DIe Wertigkeit der Ziffer wird mit der Ziffer selbst multipliziert:

  1 * 8 + 1 * 4 + 0 * 2 + 0 * 1
= 8     + 4     + 0     + 0
= 12

Was wir hier getan haben, war das Binärsystem durch Berechnung in unser bekanntes Dezimalsystem umzurechnen. Dadurch wissen wir nun, dass die Zahl 1100 des Binärsystems den gleichen Zahlenwert besitzt wie die Zahl 12 des Dezimalsystems.

Nun weißt du also, dass es ein anderes Zahlensystem gibt, welches ähnlich funktioniert wie unser Dezimalsystem.

Zurückrechnen

Um Dezimalzahlen in das Binärsystem umzurechnen, gibt es zwei Methoden:

Rest-Methode

Bei der Rest-Methode verwendet man die Basiszahl des Binärsystems. Dabei wird die Dezimalzahl solange mit der Basiszahl dividiert, bis das Ergebnis Null beträgt. Bei jeder Division wird geschaut ob das Ergebnis einen Rest hat. Gibt es einen Rest, wird dafür eine Eins notiert, sonst eine Null. Hier ein Beispiel:

Dezimalzahl / Binärbasis = Dezimalzahl | Rest | Binärzahl
       1337 /          2 =         668 |    1 |         1
        668 /          2 =         334 |    0 |         0
        334 /          2 =         167 |    0 |         0
        167 /          2 =          83 |    1 |         1
         83 /          2 =          41 |    1 |         1
         41 /          2 =          20 |    1 |         1
         20 /          2 =          10 |    0 |         0
         10 /          2 =           5 |    0 |         0
          5 /          2 =           2 |    1 |         1
          2 /          2 =           1 |    0 |         0
          1 /          2 =           0 |    1 |         1

Die Binärzahlen werden nun von unten nach oben hin niedergeschrieben und ergeben dann folgende Binärzahl für die Dezimalzahl 1337:

10100111001

Um es lesbarer darzustellen, werden die Binärzahlen in Viererblöcken dargestellt. Wenn der Block ganz links weniger als vier Ziffern haben sollte, werden Nullen vorne rangestellt:

Ergebnis:              10100111001
Viererblöcke:          101 0011 1001
Vorangestellte Nullen: 0101 0011 1001

Wert-Methode

Die Wert-Methode basiert auf der Wertigkeit der Ziffernposition im Binärsystem. Dabei wird geschaut, welche höchste Wertigkeit in die Dezimalzahl reinpasst und wird dann subtrahiert. Gibt es einen Rest bei der Subtraktion, wird das Verfahren solange angewendet bis es keinen Rest mehr gibt. Für jede Wertigkeit die in der Subtraktion Verwendung fand wird eine Eins verwendet, sonst eine Null. Hier ein Beispiel:

Dezimalzahl - Binär-Wertigkeit = Dezimalzahl-Rest | Binär-Stelle
       1337 -             1024 =              313 |           12
        313 -              256 =               57 |            9
         57 -               32 =               25 |            6
         25 -               16 =                9 |            5
          9 -                8 =                1 |            4
          1 -                1 =                0 |            1

Nun kann an jeder Binärstelle, von rechts nach links, eine Eins hinterlegt werden, der Rest bleibt auf Null:

Binär-Stelle  1: 0000 0000 0001
Binär-Stelle  4: 0000 0000 1001
Binär-Stelle  5: 0000 0001 1001
Binär-Stelle  6: 0000 0011 1001
Binär-Stelle  9: 0001 0011 1001
Binär-Stelle 12: 1001 0011 1001

Mit Binärcode Text darstellen

Aber nicht nur Zahlen lassen sich durch Binärcode darstellen. Das geht auch mit Buchstaben und Wörtern.

Möglich ist dies, weil man sich irgendwann darauf geeinigt hat welche Bits und Bytes welches Zeichen darstellen sollen. Das hat man dann in den Computer hineinprogrammiert und seitdem können wir problemlos die 128 Zeichen der sogenannten ASCII-Tabelle auf unseren Geräten abbilden.

Anhand der Tabelle könnt ihr sehen, wie jeder Buchstabe aus dem lateinischen Alphabet einer Zahl zugeordnet ist. Diese Zahl kannst du nun zurückrechnen in das Binärsystem. Und mit diesem Code kann der Computer dann wieder etwas anfangen.

Das Binärsystem in der Praxis

Das Dezimalsystem sehen wir täglich: beim Einkauf, in der Schule oder im Beruf, im Kopf wenn wir ausrechnen was die maximale Anzahl an Stücken ist, die wir aus einem Kuchen herausbekommen. Und das Binärsystem? Wo sehen wir das?

Warum gibt es überhaupt ein Binärsystem, wenn wir doch schon das Dezimalsystem haben? Kurz gesagt: Jemand in der Vergangenheit kam auf die Idee, dass ein weiteres Zahlensystem die Lösung für ein Problem sein könnte. Irgendwann hat man dann festgestellt, dass dieses Zahlensystem die beste Grundlage für die heutigen Computer darstellt. In unserem Alltag wird das Binärsystem aber eher selten verwendet.

Im Thema Maschinencode haben wir aufgegriffen, dass man sich die 0 und die 1 als Strom vorstellen darf. Wenn du jetzt mal bei dir daheim deine elektronischen Geräte abläufst und dir ganz speziell den An- und Ausschalter dieser Geräte anschaust: Was siehst du dann? Bei einigen Geräten gibt es nämlich noch ein Kreissymbol mit einem Strich in der Mitte, meist direkt auf dem Knopf oder daneben.

Strom an, Strom aus.

Der Fernseher, oder welches Gerät du daheim gefunden hast, kann entweder den Zustand besitzen An oder Aus zu sein. Denn entweder fließt Strom, oder es fließt eben keiner. Dazwischen gibt es für unsere Technik im digitalen Bereich keinen weiteren Zustand. Mit dem Binärsystem ist es möglich genau diese zwei Zustände darzustellen, da es genau zwei Ziffern zur Verfügung stellt.

Wie der Computer funktioniert

Wenn dein PC nun An ist und Strom fließt, dann kann dieser Befehle ausführen. Beispielsweise deinen Browser (Firefox, Safari, Chrome, etc.) öffnen wenn du auf das Icon doppelklickst. Was genau passiert dann im Rechner?

Der Strom, den dein Rechner nun zur Verfügung hat, leitet er weiter an die Komponenten die dafür sorgen, dass du deinen Desktop auf dem Bildschirm sehen kannst, dass du per Kabel oder WLAN Internet am Rechner hast, usw. Also gibt es auch bei den Komponenten den Status An oder Aus. Und diese Komponenten wiederum sorgen dafür, das deine Befehle richtig ausgeführt werden. Und das machen sie ebenfalls mithilfe des Stroms. An und Aus.

Dein Rechner ist also quasi durchgehend Schalter am umschalten. Und je nachdem wie die Schalter liegen, werden bestimmte Befehle abgearbeitet. Beispielsweise diese folgenden, die ich hier sehr vereinfacht dargestellt habe:

Wenn der PC an ist
und der Bildschirm an ist
und wenn ein Textbearbeitungsprogramm gestartet wurde
und ein Drucker an ist
und der Drucker per Kabel angeschlossen ist
oder der Drucker per WLAN erreichbar ist
und du den Befehl zum Drucken gegeben hast
und kein bestehender Druckauftrag vorliegt
dann soll der Drucker drucken.

Um diese Bedingungen umzusetzen gibt es ganz spezielle Komponenten im Rechnern die dies darstellen: die Logik-Gatter.

Logik-Gatter

Logik-Gatter (im engl. logic gates) werden verwendet um solche Bedingungen umsetzen zu können. Natürlich auf viel feingranularer Ebene. Der Rechner hat kein Logik-Gatter welches sich ganz allein darum kümmert zu schauen ob der Drucker nun an ist, oder nicht. Es sind viel mehr viele kleine einzelne Gatter die zusammengefasst ein großes Bild ergeben.

Info

Wenn du hierzu mehr erfahren möchtest, kann ich dir ein Buch empfehlen welches die Funktionsweise eines Computers sehr anschaulich und verständlich beschreibt. Du kannst das Buch But How Do It Know von J Clark Scott über diesen Affiliate-Link bestellen. Sobald du auf den Link klickst erhalte ich bei deiner nächsten Bestellung einen kleinen Betrag von Amazon, du zahlst für das Produkt aber nicht mehr als du es sonst tun würdest.

AND-Gate

Bei einem AND-Gate müssen alle Zustände gleich sein damit ein Befehl ausgeführt wird. Beispielsweise müssen der Computer, der Drucker und der Bildschirm an sein, damit du überhaupt drucken kannst. Wenn eins davon nicht an ist, kannst du nicht drucken. Diese Bedingungen lassen sich in einer einfachen Tabelle darstellen. Alle Zustände werden hier als Input, und der Befehl als Output bezeichnet.

Input 1 | Input 2 | Input 3 | Output
  0     |    0    |    0    |   0
  0     |    0    |    1    |   0
  0     |    1    |    0    |   0
  0     |    1    |    1    |   0
  1     |    0    |    0    |   0
  1     |    0    |    1    |   0
  1     |    1    |    0    |   0
  1     |    1    |    1    |   1

NOT-Gate oder Inverter

Das NOT-Gate invertiert den Output der Gates. Dies wird benötigt, um Bedingungen abzubilden wie beispielweise “Wenn der Drucker an ist und der Computer ein Update macht, dann drucke nicht.” Für unser AND-Gate sieht das ganze dann so aus:

NAND-Gate

Input 1 | Input 2 | Input 3 | Output
  0     |    0    |    0    |   1
  0     |    0    |    1    |   1
  0     |    1    |    0    |   1
  0     |    1    |    1    |   1
  1     |    0    |    0    |   1
  1     |    0    |    1    |   1
  1     |    1    |    0    |   1
  1     |    1    |    1    |   0

OR-Gate

Beim OR-Gate wird der Befehl ausgeführt, sobald mindestens eine Bedingung zutrifft.

Input 1 | Input 2 | Input 3 | Output
  0     |    0    |    0    |   0
  0     |    0    |    1    |   1
  0     |    1    |    0    |   1
  0     |    1    |    1    |   1
  1     |    0    |    0    |   1
  1     |    0    |    1    |   1
  1     |    1    |    0    |   1
  1     |    1    |    1    |   1

NOR-Gate

Beim NOR-Gate handelt es sich um das OR-Gate mit invertierten Ergebnissen, also dem NOT-Gate.

Input 1 | Input 2 | Input 3 | Output
  0     |    0    |    0    |   1
  0     |    0    |    1    |   0
  0     |    1    |    0    |   0
  0     |    1    |    1    |   0
  1     |    0    |    0    |   0
  1     |    0    |    1    |   0
  1     |    1    |    0    |   0
  1     |    1    |    1    |   0

XOR-Gate

Das XOR-Gate findet Verwendung, wenn mindestens eine Bedingung zutrifft aber nicht alle. Beispielsweise, wenn man nur dann drucken möchte, wenn der Drucker, der Bildschirm und der Computer an sind, aber nicht sobald das WLAN abbricht, weil der Drucker nur über WLAN mit dem Computer verbunden ist.

Input 1 | Input 2 | Input 3 | Output
  0     |    0    |    0    |   0
  0     |    0    |    1    |   1
  0     |    1    |    0    |   1
  0     |    1    |    1    |   1
  1     |    0    |    0    |   1
  1     |    0    |    1    |   1
  1     |    1    |    0    |   1
  1     |    1    |    1    |   0

XNOR-Gate

Auch hier wird das Ergebnis wieder invertiert, da das NOT-Gate zusätzlich zum XOR-Gate verwendet wird.

Input 1 | Input 2 | Input 3 | Output
  0     |    0    |    0    |   1
  0     |    0    |    1    |   0
  0     |    1    |    0    |   0
  0     |    1    |    1    |   0
  1     |    0    |    0    |   0
  1     |    0    |    1    |   0
  1     |    1    |    0    |   0
  1     |    1    |    1    |   1

Merke

Das Binärsystem ähnelt dem Dezimalsystem. Die Umrechnung von dem einen Zahlensystem in das andere kann in beiden Fällen über die Wert-Methode stattfinden. Um vom Dezimalsystem in das Binärsystem zu rechnen, kann man zusätzlich auch die Rest-Methode verwenden.

Das Binärsystem wird für die Funktionsweise der Computer verwendet. Alle Komponten des Computers können durch zwei Zustände gesteuert werden.