Im der Programmierung werden Sie oft mit Zahlen in Berührung kommen, die nicht im Dezimal-, sondern im sogenannten Binär- oder im Hexadezimalsystem ausgedrückt werden. Fall Sie mit diesen beiden Zahlensystemen noch nicht so vertraut sind, soll Ihnen dieses Kapitel eine kleine Einführung in die Zahlensysteme bieten.Bevor wir Sie jedoch mit diesen beiden Zahlensystemen bekannt machen, sollten wir uns die Grundlagen unseres Dezimalsystems in Erinnerung rufen. Wenn Sie zum Beispiel die Dezimalzahl 1987 schreiben, läßt diese sich auch als 1*1000+9*100+8*10+7*1 darstellen. Hieraus wird bereits ersichtlich, daß wenn Sie die Ziffern von rechts nach links durchnumerieren, die erste Ziffer 1, die zweite Ziffer 10, die dritte Ziffer 100 und die vierte Ziffer schließlich 1000 "zählt". Sie sehen also, daß die jeweils von rechts her gelesen nächste Ziffer immer 10mal mehr zählt.
Allen Zahlensystemen ist hierbei gemeinsam, daß die erste Ziffer immer die Wertigkeit 1 hat. Der Faktor, um den sich die Wertigkeit von Stelle zu Stelle vervielfacht, ist jedoch bei jedem Zahlensystem unterschiedlich. Er entspricht der Anzahl der Ziffern, mit denen ein Zahlensystem arbeitet. Im Falle des Dezimalsystems beträgt er 10, weil uns zehn verschiedene Ziffern (0 bis 9) zur Verfügung stehen. Lassen Sie uns nun dieses Prinzip anhand der bereits erwähnten Binär- und Hexadezimalsysteme noch weiter verdeutlichen.
Das Binärsystem ist für Ihren Computer elementar, da, wie Sie wissen, ein Computer in seinem tiefsten Inneren nur die Zahlen 0 und 1 kennt. Da wir in diesem System nicht mehr mit den Zahlen 0 bis 9, sondern lediglich mit den Zahlen 0 und 1 arbeiten, wird die Wertigkeit der Ziffern einer Zahl nicht mehr verzehnfacht, sondern lediglich verdoppelt. In der Praxis bedeutet das, daß die erste Stelle 1, die zweite Stelle 2, die dritte Stelle 4 und die vierte Stelle 8 zählt. Auf 8 folgt 16, dann 32, 64, 128 usw.
Die Binärzahl 11001 bedeutet somit nichts anderes als 1*16+1*8+0*4+0*2+1*1, also 25 im Dezimalsystem. Im Gegensatz zum Binärsystem arbeitet das Hexadezimalsystem mit mehr Zahlen als das Dezimalsystem. In diesem System zählen wir nicht von 0 bis 9 oder von 0 bis 1, sondern von 0 bis F. Da uns nur die zehn Zahlen des Dezimalsystems zur Darstellung einer Ziffer zur Verfügung stehen, und da wir dadurch die Zahlen von 10 bis 15 nicht mehr mit einer Ziffer darstellen können, verwendet man in diesem System zusätzlich zu den Zahlen 0 bis 9 die Buchstaben A bis F.
A steht hierbei für 10, B für 11, C für 12, D für 13, E für 14 und F schließlich für 15. Durch die Verwendung von 16 Zahlen bzw. Buchstaben pro Stelle beträgt der Faktor, um den sich die Wertigkeit der einzelnen Stellen vervielfacht, nicht 2 oder 10, sondern 16. Die erste Stelle hat wiederum die Wertigkeit 1, die zweite 16, die dritte 256 und die vierte 4096. Um auch dies an einem Beispiel zu verdeutlichen: Die Hexadezimalzahl FB3 steht für 15*256+11*16+3*1 oder 4019 im Dezimalsystem.
Das Hexadezimalsystem steht dem Binärsystem übrigens sehr nahe, was sich auch dadurch ausdrückt, daß immer genau vier Ziffern einer Binärzahl zu einer Hexadezimalziffer zusammengefaßt werden können. Dies ist auch der Grund, warum dem Hexadezimalsystem innerhalb der Assemblerprogrammierung eine wichtige Rolle zukommt: Die Darstellung eines Byte (einer 8 Bit umfassenden Zahl) ist mit Hilfe zweier Hexadezimalziffern besonders einfach. Um Unklarheiten in bezug auf die Zahlensysteme zu vermeiden, werden in der Praxis Binärzahlen durch ein nachgestelltes b für binär und Hexadezimalzahlen durch ein h für hexadezimal gekennzeichnet.
Sollte Ihnen der eine oder andere in dieser Seite erklärte Zusammenhang noch nicht ganz klar geworden sein, so wird Ihnen die folgende Abbildung weiterhelfen.
Abbildung: Gegenüberstellung ausgesuchter Zahlen aus den drei Zahlensystemen