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är | oktal | dezimal | hexadezimal |
0000 | 0 | 0 | 0 |
0001 | 1 | 1 | 1 |
0010 | 2 | 2 | 2 |
0011 | 3 | 3 | 3 |
0100 | 4 | 4 | 4 |
0101 | 5 | 5 | 5 |
0110 | 6 | 6 | 6 |
0111 | 7 | 7 | 7 |
1000 | 10 | 8 | 8 |
1001 | 11 | 9 | 9 |
1010 | 12 | 10 | A |
1011 | 13 | 11 | B |
1100 | 14 | 12 | C |
1101 | 15 | 13 | D |
1110 | 16 | 14 | E |
1111 | 17 | 15 | F |
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
|