Binär- und andere Systeme

Welchen Wert hat z. B. die Zahl »4711«? Klare Sache: viertausendsiebenhundertundelf. Oder als mathematischer Ausdruck:

            4 * 1000 + 7 * 100 + 1 * 10 + 1 oder
            4 * 103 + 7 * 102 + 1 * 101 + 1 * 100

Je nachdem, an welcher Stelle eine Ziffer steht, wird ihr ein besonderer Wert zugeordnet. Solche Zahlensysteme werden deshalb auch »Stellenwertsysteme« genannt.
 In unserem Fall, dem sog. Dezimalsystem, spielt die »10« eine wichtige Rolle: sie ist die »Basiszahl« unseres Systems. Da stellt sich doch die Frage: Können wir auch andere Zahlen als Basiszahl für ein Zahlensystem verwenden?
 Warum nicht? Wir brauchen uns nur anzusehen, wie alte Kulturen gerechnet haben. Nehmen wir z. B. die Babylonier (2000 - 200 v. Chr.): Sie verwendeten als Basiszahl die »60«, hatten also ein »Sexagesimalsystem«. Ab 600 v. Chr. taucht bei ihnen ein »inneres Lückenzeichen« auf ­ also der Vorläufer unserer heutigen Null.
 Ein noch älteres Zahlensystem haben die Mayas bereits im 3. Jahrtausend v. Chr. verwendet, nämlich ein System mit den Stufen »1«, »20«, »360=18*20« und »7200=360*20«. Ein alter Maya würde demnach unserer Zahl »4711« den Dezimalwert 4*7200+7*360+1*20+1*1=31341 zugeordnet haben. Die Mayas kannten übrigens auch schon ein Nullzeichen.
 Das heute allgemein gebräuchliche dezimale Positionssystem ist eine kulturelle Hochleistung, die von den Indern im 7. Jahrhundert n. Chr. vollbracht wurde. Sie rechneten übrigens damals mit hölzernen Rechenbrettchen, die bei der Berechnung mit Sand bestreut wurden, so daß das Aufgezeichnete leicht verändert werden konnte.
 Die Ostaraber übernahmen dann von den Indern dieses Dezimalsystem ­ allerdings nur für praktische Zwecke und wandelten das Brettrechnen auf das schriftliche Rechnen an. So ist z. B. das Rechenbuch des Al-Hwarazmi aus dem Jahr 820 überliefert. Als dann von der römischen Kirche die Kreuzzüge angezettelt wurden, lernten die Tempelritter von den Arabern u. a. auch diese sog. »arabischen Zahlen« kennen und verbreiteten diese Kenntnis in Europa, so daß dann endlich die umständliche Rechnerei mit den römischen Zahlen abgelöst werden konnte.
 Einer der bekanntesten Vertreter dieser »neuen« Rechenweise war Adam Riese (1492-1559), von dem in Erfurt bereits 1518 das Buch »Rechnen auff der Linihen« erschien, dem dann noch weitere folgten. Der Volksmund kennt ja heute noch den Spruch: »Das macht nach Adam Riese...«
 Wenn wir nun in einem solchen Stellenwertsystem als Basis die Zahl »2« nehmen, dann haben wir das sog. binäre System, bei dem es nur die Ziffern »0« und »1« gibt (analog zu »0« bis »9« beim Dezimalsystem mit der Basis »10«). Wenn wir z. B. die dezimale Zahl »19« in eine Binärzahl umwandeln wollen, dann können wir das mit folgenden Schritten erledigen:
        19 : 2 = 9 Rest 1 (= Einer-Ziffer)
         9 : 2 = 4 Rest 1 (= Zweier-Ziffer)
         4 : 2 = 2 Rest 0 (= Vierer-Ziffer)
         2 : 2 = 1 Rest 0 (= Achter-Ziffer)
         1 : 2 = 0 Rest 1 (= Sechzehner-Ziffer)
Wir erhalten also die Binärzahl »10011« mit dem dezimalen Wert »19«, wie auch die Kontrollrechnung

      19 = 1*16 + 0*8 + 0*4 + 1*2 + 1*1 oder
      19 = 1*24 + 0*23 + 0*22 + 1*21 + 1*20

ergibt. Wer sich diese Rechenschritte genauer ansieht, wird erkennen, daß sich einige Schritte immer wiederholen, so daß sich diese Methode leicht zu einem allgemein verwendbaren Programm erweitern läßt, mit dem eine beliebige Zahl n in die entsprechende Zahl mit dem Basiswert b umrechnet wird:

PROCEDURE Umrechnen ( n : Integer; b : Integer ); BEGIN (* Umrechnen *) IF n <> 0 THEN BEGIN Umrechnen ( n DIV b, b ); Write ( n MOD b ) END END; (* Umrechnen *)

Auf der KaD befinden sich zwei Programme (UMRECH.PAS für Turbo Pascal und UMRECH.LOG für DrLogo), mit dem das ausprobiert werden kann.

 Unsere heutigen digitalen Computer rechnen alle intern mit dem Binärsystem. Das war anfangs überhaupt nicht selbstverständlich, da die früheren mechanischen Rechenmaschinen sich alle an das Dezimalsystem hielten. Als aber in den 30-er Jahren der deutsche Computerpionier Konrad Zuse im Wohnzimmer seiner Eltern den ersten digitalen Computer baute, entschied er sich für das binäre System. Denn in diesem System gibt es nur die beiden Ziffern »0» und »1«, und die lassen sich exakt mit einem Relais realisieren; ein Relais ist entweder »offen« oder »geschlossen«.
 Da aber Zahlen in binärer Darstellung ziemlich schnell sehr lang werden und damit für Menschen schlecht zu lesen sind, faßte man bei den ersten Computern jeweils drei solche Bitziffern zu einem Oktett zusammen:

binäroktaldezimalhexadezimal
0000000
0001111
0010222
0011333
0100444
0101555
0110666
0111777
10001088
10011199
10101210A
10111311B
11001412C
11011513D
11101614E
11111715F

Als dann die Computer immer größer und damit auch diese oktalen Zahlen immer länger wurden, wurden dann vier Bitstellen zu einem Halbbyte oder Nibble zusammengefaßt und das Hexadezimalsystem eingeführt, das heute bei den meisten Rechnern im Einsatz ist.
 Wenn wir auf unserer Joyce mit Mallard-Basic coden, dann können wir wahlweise Zahlen dezimal, oktal oder hexadezimal ausgeben. Die Standardeinstellung ist dezimal; wenn wir eine Zahl oktal darstellen wollen, dann verwenden wir die Funktion OCT$ und für Hex-Zahlen die Funktion HEX$. Auf der KaD befindet sich ein Basic-Programm ASCII.BAS, das die ASCII-Werte von 0 bis 255 binär, oktal und hexadezimal ausgibt.
 Übrigens, wer meint, daß Binärsysteme eine Erfindung unserer Zeit sind, ist auf dem Holzweg. Bereits die alten Chinesen kannten das binäre System, das ja auch dem bekannten »I-Ging« zugrundeliegt. Als der Philosoph und Mathematiker Gottfried Wilhelm Leibniz (1646-1716) dieses berühmte chinesische Weisheitsbuch las, wurde er zur Idee inspiriert, daß die Null das Nichts symbolisiere und die Eins das Etwas oder das Sein und daß mit den Zeichen Null und Eins jede mögliche Welt ausdrückbar sei. Wer an die Computeranwendungen von heute denkt, wird wohl zustimmen.
DangSoft


Abgedruckt in Klubzeitung Nr. 43


... zurück ...