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.