2019-02-28 5 Minuten

0 und 1. Oder: wie du mit einem Satz einen Programmierer zum Kopfschütteln bringst.

Dieser Blog existiert seit über einem Jahr, und ich habe bereits mehrere fundamentale Konzepte des Internets aufgegriffen. Eines war aber bis heute noch nicht dabei: Das Binärsystem. Ehrlich gesagt fällt mir schwer, einen Einstiegspunkt zu finden. Also fangen wir direkt mit etwas an, das jeder kennt: Zahlen. Man kann sie mögen oder nicht, aber sie … Continued

Dieser Blog existiert seit über einem Jahr, und ich habe bereits mehrere fundamentale Konzepte des Internets aufgegriffen. Eines war aber bis heute noch nicht dabei:

Das Binärsystem.

Ehrlich gesagt fällt mir schwer, einen Einstiegspunkt zu finden. Also fangen wir direkt mit etwas an, das jeder kennt:

Zahlen.

Man kann sie mögen oder nicht, aber sie sind da. Und eigentlich essenziell für unsere moderne Gesellschaft (Dinge, über die man sich nie Gedanken macht).

Und sie waren nicht immer so gut organisiert. Die Römer hatten ein Zahlensystem, das an Absurdität eigentlich kaum zu überbieten ist. Vollkommen nutzlos für jeden, der auch nur Addieren will. Kein Wunder, dass das römische Reich nicht mehr existiert (hört ihr die Aufschreie der Historiker?).

Ich will jetzt nicht über Zahlensysteme abnerden, werde es aber trotzdem tun:

MMXIX

Römische Zahlen sind eine additive Zahlschrift. Wenn wir uns die Überschrift genauer ansehen, checken wir warum:

  • M steht für 1000
  • X für 10
  • I für 1

Steht eine I vor einem X, wird sie abgezogen. MMXIX heißt also 2019.

Eeeeasy. Nur: schreib mal 1.234.567 mit diesem System.

Die Lösung ist CCCCIↃↃↃↃ CCCIↃↃↃ CCCIↃↃↃↂↂↂↀↁIↃLXVII

Da lobe ich mir doch ein Stellenwertsystem.

Ein Hoch auf arabische Zahlen

Die Zahlen, die wir heute verwenden, sind die arabischen Zahlen. Die funktionieren um einiges Einfacher:

  • Es gibt eine gewisse Anzahl an Zeichen (im Dezimalsystem sinds 10)
  • Deren Wert hängt von der Stelle ab, an der sie stehen.

So weit, so intuitiv.

Der Vollständigkeit halber (und weil es später ein wenig komplexer wird), hier ein Beispiel:

In der Zahl 2000 hat das Zeichen 2 an der Stelle 1 von 4 hat den Wert Zweitausend. No shit sherlock.

Damit ist der Kindergeburtstag aber auch schon zu Ende.

Denn: was passiert, wenn wir statt 10 Zeichen 16 verwenden?

Hexadezimal

Dann entsteht ein völlig anderes Zahlensystem. Und zwar eines mit den Zeichen 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E und F.

Keine Angst, die erste Reaktion auf das Hex-System ist bei jeder Person die eines Schulkindes, das zum ersten Mal eine Gleichung lösen soll:

“Was machen diese Buchstaben in meinen Zahlen?”

– Du, wahrscheinlich

Im Prinzip ist es aber genau das gleiche wie unser Dezimalsystem. Nur dass nach 9 nicht 10 folgt, sondern A.

Die Dezimale Zahl 13 ist in Hexadezimal D.

Bevor ich jetzt alle Leser verliere – vereinfachen wir die ganze Sache mal wieder. Wird Zeit.

Was hat das jetzt mit meinem Computer zu tun?

Naja, auch Computer müssen sich an Naturgesetze halten (auch wenn es oft nicht so aussieht).

Und mit unserer Technologie ist es nicht wirklich gut möglich (außer vll mit diesen ominösen Quanten), mehr als zwei Zustände gut darzustellen.

Ich lasse Themen wie Signale oder generell dieses ganze Physische mal außen vor. Dir zu liebe.

Computer funktionieren im Prinzip mit Strom. Und mit Strom lassen sich zwei Zustände (ein und aus) viel besser managen als 16 Zustände (wie soll das funktionieren? Strom zu einem sechzehntel ein?).

Anstatt 16 verschiedenen Zeichen verwenden Computer also nur zwei.

Die 0 und die 1.

Dieses ganze 0-1 Computer-Ding ist also nur ein Zahlensystem, das eben auf 2 anstatt 10 basiert. 🤯

Zählen wir in Binär 🤓

UND JETZT ALLE GEMEINSAM! Beginnen wir bei 0:

0

Okay. Das war easy. Wie siehts mit 1 aus?

1

Mkay. Jetzt gehen uns aber die Zeichen aus. Heißt: wir brauchen eine neue Stelle. Was ist dann also die Zahl 2 in binär?

10

Und 3?

11

Und damit vollkommene Verwirrung aufkommt: Was ist 10 in binär?

1010

Da fällt mir ein Programmierer-Witz ein (Achtung, Brüller):

Es gibt 10 Arten von Menschen. Die, die Binär können, und die dies nicht können. Whahahaha 😂😂😂💯👍

Mir wurde Kopfschütteln versprochen

Mit einer (1) Stelle können also zwei Zustände dargestellt werden. Mit zwei Stellen sind es schon 4. Das ist auch der Grund, warum Programmierer bei 0 zu zählen beginnen.

Speichert man am Computer eine Liste (zum Beispiel einen sogenannten Array), die bei 1 anfängt, verschwendet man quasi eine Stelle. Man könnte ja einen Zustand mehr mit dieser einen Stelle abbilden.

Hat die Liste dann 2 Einträge, braucht man schon zwei Stellen (10), um die Einträge zu nummerieren. What a waste.

Das klingt nach wenig, macht aber über alle Computer dieser Welt enorm viel aus.

Falls das jetzt komplett unintuitiv klingt:

In Europa sind Stockwerke nach der selben Logik nummeriert. Die muss zwar niemand speichern, aber hast du dich jemals gefragt, warum das Erdgeschoss nicht schon die Nummer 1 hat?

Oder Geburtstage. Man wird eigentlich mit dem Alter 0 geboren.

Wer also glaubt, in Listen bei 1 zu zählen zu beginnen, liegt rein technisch eigentlich falsch. In Programmiererkreisen ist das bereits zum Gegenstand zahlreicher Memes geworden:

Fazit

Wenn du den Programmierer deines Vertrauens demnächst siehst, geh ganz nah an sein Ohr und flüstere:

„Arrays beginnen bei 1“

Du wirst nicht enttäuscht werden.

In diesem Sinne:

01000100 01100001 01101110 01101011 01100101 00100000 01100110 01110101 01100101 01110010 01110011 00100000 01001100 01100101 01110011 01100101 01101110 (Tip: Binary to Ascii Text Converter)

Von Hackern, Wordpress, SEO & Co

  • Wo kommt mein Spam her?
  • Wie leicht ist es, eine Wordpress Seite zu hacken?
  • Wie Umzugsfirmen ihre Gaunereien mit SEO umsetzen

...wöchentlich in deiner Inbox! 🚀

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.