Mittwoch, 7. Februar 2007

Warum Informatiker mit ihren zehn Fingern bis 1023 zählen können

Ich bin gefragt worden, ob ich den Spruch an der rechten Seite auch mal für Nicht-Informatiker erklären könnte („Nur Informatiker können mit ihren Fingern bis 1023 zählen.“). Ich kann. Damit ich sicherstellen kann, dass auch wirklich jeder das verstanden hat, hole ich mal etwas weiter aus.

Im normalen Leben begegnen uns meist nur Dezimalzahlen, wenn man mal von der Uhrzeit und dem Pfund Hackfleisch beim Schlachter absieht. Das ist uns vertraut und wir können ohne zu Stocken zählen und manche Leute sogar rechnen. Die Basis (Fachbegriff, für den weiteren Verlauf merken) in unserem Dezimalsystem ist die Zahl 10. Der Zeichenvorrat (die Anzahl der zur Verfügung stehenden Zeichen) umfasst 10 Zeichen, die Ziffern 0-9. Zählt man nun bis 15, so reichen die Zeichen nicht aus um dies so einfach darzustellen, da bei 9 Schluss ist. Die Lösung hierfür liegt in der sogenannten Stellenwertigkeit. Wenn man zu 9 eins hinzuzählen will, dann springt die 9 auf die 0 zurück und eine 1 wird vor die Null geschrieben. Da diese 1 aber an der ersten Stelle steht, ist sie höherwertiger als die letzte Ziffer. Das Spiel wiederholt sich beim Sprung von der 19 zur 20, von der 29 zur 30 und so weiter und so fort. Ist man bei der 99 angelangt, springen beide Stellen um, da der Zeichenvorrat aufgebraucht ist und eine weitere Stelle benötigt wird. Nun steht da eine 100. Die Wertigkeit der Stellen erhöht sich hierbei immer. Hat die hinterste Stelle noch die Wertigkeit 1 (d.h. Ihre Ziffer wird mit 1 multipliziert), hat die zweite Stelle schon die Wertigkeit 10 und die dritte Stelle die Wertigkeit 100. Anders gesprochen ist die Wertigkeit der Stelle immer Basis hoch Stellenzahl (angefangen mit der 0). Die erste Stelle ist somit 10 hoch 0 (=1) wert, die zweite 10 hoch 1 (=10) und die dritte 10 hoch 2 (=100). Das kann man unendlich weitermachen und ist vor allem für Umrechnungen zwischen den Zahlensystemen sehr hilfreich.

Dies lässt sich nicht nur in Zahlensystemen mit der Basis 10 durchführen, sondern ist theoretisch in jedem anderen Zahlensystem möglich. In der Informatik gängige Zahlensysteme sind Das Hexadezimalsystem (mit der Basis 16), das Oktalsystem (mit der Basis 8) und als fundamentalstes System das Binärsystem (mit der Basis 2).

Während man im Hexadezimal- bzw. Oktalsystem 16 bzw. 8 Zeichen im Vorrat hat, beträgt die Anzahl der Zeichen im Binärsystem gerade einmal 2. Auf diesen Zahlen ruht die gesamte Elektronik, weil sie die beiden einzigen Zustände darstellen, die auftreten können: „Strom fließt“ und „kein Strom fließt“. Die beiden Zeichen sind 0 und 1 und für sie gelten die selben Regeln wie im Dezimalsystem. Beim Zählen wird immer die letzte Ziffer um eins erhöht – und sofern der Zeichenvorrat aufgebraucht ist, wird die Ziffer um eins erhöht, die links neben ihr steht. Da nur zwei Zeichen zur Verfügung stehen, wird im Binärsystem ziemlich oft der Übertrag bemüht. Eine Zahl im Binärsystem sieht zum Beispiel so aus: 101. Das sieht für das dezimalgeschulte Auge nach ziemlich viel aus, ist es aber nicht. Nimmt man die Regel von oben (Basis hoch Wertigkeit), lässt sich das ganz einfach umrechnen: 1*2^0 + 0*2^1 + 1*2^2, also 1 + 0 + 4 = 5. Der Wert einer Stelle verdoppelt sich dabei immer. Angefangen mit der 1 folgen 2, 4, 8, 16, 32, 64, 128, 256, 512... Diese Zahlen sind der Schlüssel zur Umrechnung und unverzichtbar für jeden Informatiker. Das Schema wird nämlich sehr einfach, wenn man satt der Potenzen einfach nur noch Additionen machen muss (=plus statt hoch). Steht dort als Zahl 11011, rechnet man also nur noch die Werte der einzelnen Stellen zusammen, also 1+2+8+16 = 27.

Nicht anders funktioniert es mit den Hexadezimal- und Oktalzahlen. Hexadezimalzahlen sehen allerdings für den normalen Menschen schon sehr kryptisch aus, da ja ein Zeichenvorrat von 16 Zeichen benötigt wird. Zusätzlich zu den Ziffern 0-9 verwendet man hier die Buchstaben A-F. A entspricht also 10 und F 15. Eine Zahl könnte hier also 1B sein, welches umgerechnet (B=11) 11*16^0 + 1*16^1 also 11 + 16 = 27 ist. Dies mag noch keinen erkennbaren Vorteil bieten, aber wenn die Zahlen größer werden spart man hier unter Umständen eine Menge Platz ein. Beispiel: FA5EFBD hexadezimal entspricht 262533053 dezimal.

Wenn sich nun fragt, wieso Informatiker mit ihren zehn Fingern bis 1023 zählen können, der wird schon ahnen, dass ein so jemand sicher mit einem anderen Zahlensystem arbeitet. Da es bei den Fingern der Hand beim Zählvorgang nur die Zustände „Finger angewinkelt“ und „Finger gestreckt“ gibt, der Zeichenvorrat also auf zwei Zeichen begrenzt ist, wird hier das Binärsystem genutzt. Die Stellenanzahl wird durch die Anzahl der Finger auf 10 begrenzt. Die höchste Zahl, die hier angezeigt werden kann, ist also binär 11111 11111 wobei die 1 jeweils einen gestreckten Finger symbolisiert. Rechnet man dies in eine Dezimalzahl um (durch Addition der Wertigkeiten), erhält man 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 = 1023. Sind also alle Finger ausgestreckt, hat man das Maximalergebnis erreicht.

Die Binärzahl 10011 kann man nicht nur mit dem Cover der Ärzte-Live-Dreifach-CD „Wir wollen nur deine Seele“ verbinden, sondern auch mit der Zahl 19.

Natürlich ist es sehr schwer, immer alle Finger präzise einzeln zu steuern, deshalb ist diese Art des Zählens unpraktikabel, aber nicht unmöglich. Es geht also wirklich mit dem Teufel zu, wenn jemand die Zahl des Teufels „666“ binär an seinen Händen zeigen kann. Probiert es aus, binär ist das 10100 11010. Also Daumen und Mittelfinger der linken Hand und kleiner Finger, Ringfinger und Zeigefinger der rechten Hand (Handflächen zu sich gerichtet). Eik0w kann es zum Beispiel. Würde mir zu denken geben.

Alles verstanden? Schade. :( Aber eine Frage zum Schluss noch, um zu sehen ob es alle verstanden haben: Wie ist die höchste Zahl, die meine Comicfiguren mit ihren Fingern im Binärsystem anzeigen können?

Und wer versteht jetzt diesen Comic?

Image Hosted by ImageShack.us

9 Kommentare:

Anonym hat gesagt…

Sehr schön.
1023 hab ich verstanden :) Zumindest zwischenzeitlich. Als ich gerade "ach so" sagen wollte, hatte die Erkenntnis mich auch schon wieder verlassen :(

Anonym hat gesagt…

2 alter :D

Anonym hat gesagt…

den check ich nicht :(

00100 == 4!

alles scheiße!

Anonym hat gesagt…

:( der kommentar sollte eig zum Beitrag unter dem :(

olli mach mal was :D

Schnitzel hat gesagt…

Voghul, die haben nur drei Finger... Da ist der mittlere Finger die 2...

Anonym hat gesagt…

Auwei... mach da ma bitte ein paar Absätze rein, das liest sich recht anstrengend ;)

Wenn ich da übrigens mal ganz nebenbei auf meinen Eintrag dazu verweisen dürfte? Na ich machs einfach ^^
http://www.kittyluka.de/index.php?/archives/403-Halloween-und-Weihnachten.html

Schnitzel hat gesagt…

Oh, Hello Kitty!

So besser?

Anonym hat gesagt…

63.

Schnitzel hat gesagt…

Richtig, unbekannter Nummer eins. Mit sechs Fingern ist die höchstmögliche darstellbare Binärzahl 111111, also 63. Schöne Transferleistung.