Von 0 und 1 zu Gabalier – Teil 1

Artikelreihe

Computer rechnen mit Nullen und Einsen und alles was sie tun, muss auf diese zwei Zahlen reduziert werden. Strom an oder Strom aus sozusagen. Diese Aussage hat wohl wirklich jeder schon mal gehört und glücklicherweise ist sie zumindest aus Sicht von Software noch nicht mal falsch, was bei grob vereinfachenden Behauptungen über Wissenschaft oder Technik ja keine Selbstverständlichkeit ist. Die Frage ist nur, wie funktioniert das? Wie kommt man von Null und Eins zu einer MP3 von Andreas Gabalier? Und will man das überhaupt?

In dieser kleinen Blog-Reihe werde ich erklären wie Zahlen, Text, Bilder und Musik in eine Form gebracht werden können, welche ein Rechner verarbeiten kann. Dabei soll es nicht darum gehen irgendwelche speziellen Dateiformate wie MP3 oder JPEG zu beschreiben. Die sind zwar wichtig, andererseits aber auch völlig beliebig, weil man jederzeit selbst ein neues Dateiformat erfinden könnte das sich in ein paar Details von den bestehenden unterscheidet. Mir geht es hier um die grundlegenden Prinzipien, die einem Computer erlauben eine Wurst aus ein paar Millionen Nullen und Einsen als peinliches Foto vom letzten Filmriss beim Fortgehen zu interpretieren und uns damit für immer an unsere Schande zu erinnern.

Zahlen im Binärsystem

Zahlen sind das Fundament für alles was in einem Computer passiert, weshalb wir uns zuerst mit ihnen beschäftigen werden. 1000 kann man mit Nullen und Einsen ja noch schreiben, aber wie stellt man damit z.B. 583 dar? Spoiler, es ist 10 0100 0111. Aber wieso? In der Schule lernt jeder von uns das Rechnen im Dezimalsystem, welches Zahlen mit der Basis 10 darstellt. Es gibt die zehn Ziffern von 0 bis 9 und mit jeder Stelle, die wir uns in einer Zahl nach links oder rechts bewegen zählt sie um eine Zehnerpotenz mehr oder weniger.

Als Beispiel, 583 kann auch so dargestellt werden:

Was wiederum genau diesem Ausdruck entspricht:

Zahlensysteme, bei denen der Wert einer Ziffer von ihrer Position abhängt, nennt man Stellenwertsysteme. Die Römische Zahlenschrift ist beispielsweise kein Stellenwertsystem, dort hat jede Ziffer eine bestimmte Wertigkeit und ihre Position in einer zusammengesetzten Zahl ist völlig irrelevant. Das Binärsystem ist hingegen genauso ein Stellenwertsystem wie das Dezimalsystem und der einzig relevante Unterschied besteht in der Basis, welche statt zehn jetzt zwei beträgt. Mit der gleichen Schreibweise, durch die ich oben die Dezimalzahl aufgespalten habe, kann man übrigens auch gemütlich vom Binärsystem ins Dezimalsystem umrechnen. Als kleines Beispiel können wir ja meine gespoilerte Zahl von vorhin verwenden und zurück ins Dezimalsystem übersetzen. Zur Erinnerung, es war 10 0100 0111 und soll 583 ergeben.

Heureka! Okay, zugegeben, so beeindruckend ist das jetzt auch wieder nicht. Aber immerhin funktioniert das mit jeder beliebigen Zahlenbasis. In der Informatik ist z.B. auch das Hexadezimalsystem recht beliebt, das mit der Basis 16 arbeitet. Weil wir in der westlichen Kultur aber nur zehn Ziffern kennen, hat man dafür einfach noch die Buchstaben A bis F als Ziffern für die Werte 10 bis 15 umfunktioniert. Umgekehrt können wir auch sehr einfach vom Dezimalsystem ins Binärsystem umrechnen indem wir die Dezimalzahl immer wieder durch zwei dividieren. Keine Angst, das werden wir jetzt nicht auch noch durchexerzieren, ich würde mich ja doch freuen, wenn Sie nach diesem Artikel noch mal meinen Blog besuchen.

Weil ich die Begriffe Bits und Bytes in Zukunft sicher noch öfter verwenden werde, hier noch eine Klarstellung. Ein Bit steht für eine einzelne Stelle in einer Binärzahl und ist damit entweder 0 oder 1. Ein Byte ist eine Gruppe von acht Bits und kann damit 256 verschiedene Zahlen darstellen und ein Nibble ist der etwas seltsame Bruder des Bytes, der nie raus geht und besteht aus vier Bits.

Das Binärsystem ist übrigens keine neu-moderne Erfindung von irgendwelchen Informatikern denen langweilig war, sondern wurde schon im 17. Jahrhundert von Gottfried Wilhelm Leibniz eingeführt, den die meisten in der Schule wohl schon das eine oder andere Mal für die Erfindung der Differenzial- und Integralrechnung verflucht haben. Auch das Rechnen mit anderen Basen als 10 ist nichts wirklich Neues, schon die Babylonier verwendeten ein Zahlensystem mit Basis 60, weshalb wir auch heute noch einen Kreis in 360 Grad einteilen oder eine Stunde in 60 Minuten.

Sie dürfen sich für den letzten Absatz übrigens gerne mit einer Spende bei Wikipedia bedanken, von wo ich schamlos abgeschrieben habe. Wenn Sie es damit übrigens wirklich schaffen auf einer Party als interessanter Gesprächspartner durchzugehen, Hut ab!

Von der Zahl zum Text

Ausgezeichnet, wir haben jetzt Zahlen! Nur, wie geht es jetzt weiter? Es hat zwar vermutlich jeder pubertierende Schüler irgendwann schon mal seinen Taschenrechner verwendet um mit den Ziffern 8, 0 und 5 das englische Wort für weibliche Brüste zu schreiben, aber dass man mit diesen halb lustigen Tricks nicht sonderlich weit kommt ist auch klar. Um Text mit Nullen und Einsen darzustellen, müssen zwei Probleme gelöst werden. Einerseits muss festgelegt werden, wie ein Programm eine binäre Zahl interpretieren muss damit daraus Text wird und zweitens muss die Software erst mal wissen, welche Nullen und Einsen für Zahlen stehen, welche für Text und welche für die „kostengünstig“ aus dem Internet geladene Staffel von Game of Thrones.

Welche Bits und Bytes im Computer wie interpretiert werden hat etwas mit intelligentem Software Design, Compilern, Kommunikationsprotokollen und Dateisystemen zu tun und wird sicher noch ein paar eigene Blogbeiträge füllen. Oh, ich kann Ihre Vorfreude direkt spüren!

Wie die Binärzahlen als Text zu interpretieren sind wird durch „Character Encodings“ festgelegt, welche prinzipiell einfach eine große Tabelle darstellen, die einer Menge an Buchstaben und Symbolen jeweils eine Zahl zuweisen. Das bekannteste Beispiel ist hier sicher das ASCII Encoding, welches sieben Bit und damit 128 verschiedene Symbole umfasst. 42 (oder 010 1010 in binär) steht darin zum Beispiel für „*“ und 69 für ein großes „E“. Ein Programm das eine lange Folge von Bits als Text interpretieren will, müsste jetzt nur noch immer sieben Bits lesen und in der ASCII Tabelle nachsehen, für welches Textsymbol diese Zahl steht. Da 128 Zeichen allerdings schon arg wenig sind, die fiesen Amis darin noch nicht mal unsere geliebten Umlaute eingebaut haben und an Emojis damals nachlässiger Weise noch gar niemand gedacht hat, wird die ASCII Kodierung heute nur noch selten verwendet. Inzwischen hat sich Unicode als internationaler Standard durchgesetzt. Dieser umfasst prinzipiell 32 Bits, welche allerdings nicht komplett verwendet werden und beschreibt derzeit 1.114.112 mögliche Zeichen. Da sollten auch noch genug Reserven für ein paar dutzend Varianten des Kackhaufen-Emojis vorhanden sein.

Im zweiten Teil dieser kleinen Blog-Reihe werden wir uns dann mit Bildern und Musik beschäftigen. Damit Sie sich nicht zu große Hoffnungen machen, die eingangs erwähnte Frage, wieso man einem Computer beibringen sollte ein Andreas Gabalier Lied in binärer Form zu speichern, kann ich beim besten Willen nicht beantworten.

Werbeanzeigen

3 Kommentare zu „Von 0 und 1 zu Gabalier – Teil 1

  1. Sehr schöner Artikel! Amüsant geschrieben. Ich musste an mancher Stelle schmunzeln. 🙂 Ein Tipp von mir: Um die Blogreihen zusammenzufassen und einfacher zu finden: Tags benutzen! Denn leider kann ich nicht entdecken, dass die Artikel hier von dir getaggt worden wären. Und am Anfang eventuell eine Übersicht über die einzelnen Teile der Reihe. Jetzt noch irrelevant, aber wenn es mehr Teile werden, kann damit gut auf die anderen hingewiesen werden.

    Gefällt mir

    1. Hi Simon, vielen Dank für das Feedback. Freut mich, dass dir der Artikel gefallen hat. Die Übersicht werde ich auf jeden Fall noch hinzufügen sobald ich den zweiten Teil der Reihe veröffentliche und das mit den Tags werde ich auch noch nach nachholen sobald mir was einfällt wie ich die Artikel am besten thematisch gruppieren kann.

      Gefällt 1 Person

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s