Home Computer Software Site Map counter

Wie rechnen Computer?

Wie allgemein bekannt, verwenden die Computer das Binärsystem um Zahlen darzustellen, aber warum und was hat es mit Zahlensystemen überhaupt auf sich?

Nun man sollte sich zuerst einmal klar machen, das das von uns verwendete Dezimalsystem auf der Basis 10 nicht unbedingt als Naturgesetz geschaffen wurde, sondern es viele Möglichkeiten gibt, Zahlen darzustellen und auch die Basis eines Zahlensystems nicht 10 sein muss. Dazu ein kleiner Ausflug in die Geschichte. Die älteste Zahlendarstellung, die wir kennen und die ein System anwandte, das über das Abzählen hinaus ging, (also z.B. 5 Kerben für die Zahl 5) ist das der Babylonier.

Die Babylonier verwandten ein System auf der Basis 60. Dieses System hat sich bis heute erhalten, denn sie teilten auf Basis dieses Systems auch den Tag ein in 24 Stunden x 60 Minuten x 60 Sekunden. Das es nicht 60 Stunden sind, verdanken wir der Tatsache, dass man eine Messmöglichkeit für die Zeit braucht und da bot sich der menschliche Herzschlag an, der in diesem System in Ruhe im Mittel einmal pro Sekunde erfolgt. Die Französische Revolution, die uns viele metrische Einheiten wie das Meter oder Kilogramm brachte, versuchte auch einen Tag mit 100.000 Sekunden (10 Stunden zu je 100 Minuten zu je 100 Sekunden, scheiterte aber, da die neue Zeitrechnung nicht akzeptiert wurde.

Warum nun die relativ große Basis 60, die man anders als die 10 nicht aus unserer Natur (Abzählen der zehn Finger) ableiten kann? Die Babylonier waren eine der ersten Hochkulturen. Sie bauten Tempel, betrieben Astronomie und Handel über weite Strecken, kannten jedoch Trotz der Astronomie keine höhere Mathematik und trotz Handel kein Geld. Der Handel beruhte auf Tauschhandel, ebenso die Festsetzung der Steuern in Naturalien. Ohne Geld musste es aber zahlreiche Wechselkurse geben wie z.B. „Ein Topf kostet 5 Brote“ oder „für 3 Sklaven bekommt man zwei Kühe“. Da man viele Waren nicht teilen kann oder sie beim Teilen zerstört sind (z.B. die erwähnten Sklaven) war es für die Angabe der Menge sehr geschickt, wenn man ein Zahlensystem hat, dessen Basis durch möglichst viele Zahlen ganzzahlig teilbar ist. Die Zahl 60 ist ganzzahlig durch die Zahlen 1,2,3,4,5,6,10,12,15,20,30 teilbar, also durch 11 Zahlen, darunter die ersten 6. Bei unserem Dezimalsystem auf der Basis 10 sind es nur 1,2,5 also drei Zahlen und von den ersten sechs sind es nur zwei.

Dieses Zahlensystem war eine Mischform zwischen additivem und Stellenwertsystem. Es gab nur zwei Symbole, die in Ton mit einem Griffel gedrückt wurden und so kombiniert wurden. Die erste Stelle stand für die Zehner mit einem Bogen als Symbol (ein gedrehtes „v“ dessen Spitze nach links zeigt). Gab es mehrere, so drückte man die Bögen übereinander. Die zweite Stelle stand für die Einser, die einfach ein senkrechter Keil waren. Auch hier positioniert man mehr Keile nebeneinander bzw. übereinander.

Das bekannteste additive Zahlensystem ist das römische. Es ist sogar noch etwas komplizierter als das Babylonische, da es neben der Addition von Symbolen auch die Subtraktion beinhaltet. So steht das „V“ für den Wert 5 und das „I“ für den Wert 1. Bei einem normalen additiven Zahlensystem würde man so die Ziffern 4 und 6 in folgender Weise schreiben: „IIII“ und „VI“. Das römische System hat noch die Besonderheit, das eine Ziffer die kleiner als die folgende ist und links dieser steht, abgezogen wird. So wird aus „IIII“ die Folge „IV“. Das macht es kürzer, aber erschwert das Rechnen enorm. Das römische Zahlensystem benutzt gleich zwei Basiszahlen nämlich 5 und 10. (Erkennbar an den eigenen Symbolen für 5 (V), 50 (L), 500 (D) und 10 (X), 100 (C) und 1000 (M).

Additive Zahlensysteme eigenen sich nicht besonders gut zum Rechnen, weil schon die einzelnen Ziffern eine Addition nötig machen. Weiterhin sehen diese Systeme weder Bruchzahlen vor (es gibt keine Nachkommastellen) noch sind sie für große Zahlen geeignet. Das römische System endete mit der 1000. Um den Bundeshaushalt der rund 300 Milliarden Euro beträgt damit abzubilden müsste man 300 Millionen Ziffern schreiben.

So verwundert es nicht, das sich das indo-arabische Stellenwertsystem sehr schnell weltweit durchsetzte. Das ist das Heutige auf der Basis 10. Die Inder erfanden schon 300 vor Christus das Stellwertsystem. Anstatt die Ziffern zu addieren, hatten sie unterschiedliche Bedeutung, je nachdem an welcher Stelle sie standen. Die Ziffern „123" bedeuten im Dezimalsystem: 1 x 100 + 2 x 10 + 3 x 1. Die erste Stelle von rechts steht also für Vielfache von 1. Die Zweite für Vielfache der ersten Potenz von 10, also 10, und die dritte für die zweite Potenz von 10 also 100. Man kann auch schreiben:

123 = 1 x 102 + 2 x 101 + 3 x 100.

Jede Stelle steht also für eine Zehnerpotenz (100 ist 1). In der arabischen Schrift, deren Symbole für die Ziffern wir übernommen haben, wird die Folge von links nach rechts geschrieben. Das ist, wenn man das System als Kind lernen muss, natürlicher. Die große Erfindung dieses Systems ist die Null, nur mit ihr macht ein Stellenwertsystem Sinn. (Man könnte auch die vor der ersten Ziffer nicht angegebenen Ziffern als Stellen mit 0 ansehen). In den früheren Zahlensystemen, die für den Handel oder die Bemessung von Leistungen vorgesehen waren, gab es keine Null. Weil es keinen Sinn machte, eine Ware gegen nichts einzutauschen. Das zeigt sich noch im Kalender, dessen Jahresgliederung wir von den Römern übernommen haben: Es gibt in der Historie kein Jahr 0, auf -1 vor Christus folgt gleich das Jahr +1 nach Christus. Im Jahr 0 ereignete sich also gar nichts und Kaiser Augustus, der von -27 bis +14 regierte, hatte nur eine Regierungszeit von 40 und nicht 41 Jahren. Astronomen haben, weil sie aber Sternkonstellationen zurückberechnen müssen, durchaus ein Jahr 0, das ist dann das gleiche wie das Jahr -1 in der Geschichtsschreibung.

Wie jeder von uns von der Schule noch weiß, vereinfacht ein Stellenwertsystem die Addition von zwei Zahlen enorm: Man muss nur beginnend von der Stele mit dem niedrigsten Wert die Zahlen für jeweils diese Stelle addieren, wenn die Summe 10 überschreitet, so schreibt man nur die letzte Stelle auf und bildet einen Übertrag, denn man an der nächsten Stelle addiert:

die Addition von 567 und 626 verläuft z.B. so

Zahl

1000

100

10

1

Zahl 1


5

6

7

Zahl 2


6

2

6

Übertrag

1


1


Summe

1

1

9

3

Man muss also nicht beliebige Zahlen addieren können, es reicht, wenn man weiß wie man zwei Zahlen von 0 bis 9 addieren kann. Wenn man dies kann, dann kann man jede beliebig große Zahl addieren.

Aufgrund dessen rechnen auch die Computer mit einem Stellenwertsystem. Nur ist dieses aus der Basis 2. (Binärsystem) Die Basis 2 ergibt sich bei Computern genauso natürlich, wie das Zehnersystem bei uns Menschen. Wir haben zehn Finger und das Erste was wir machen bevor wir addieren können ist abzählen, wobei wir unsere Finger als „Speicher“ benutzen.

Alle Computer, von den Ersten mechanischen bis zu den heutigen aus hochintegrierten Schaltkreisen bestehen letztendlich aus Schaltelementen, das unterscheidet sie von mechanischen Rechenmaschinen, die nicht die Basis 2 nehmen müssen, sondern z.B. auch die Basis 10. Damit arbeiteten z. B. die mechanischen Addiermaschinen oder Registrierkassen. Aber dies waren keine Computer, sie waren nicht programmierbar sie konnten nur addieren und das war es schon.

Jeder Computer basiert aus unzähligen elektrischen Schaltern, die genauso wie ein Lichtschalter funktionieren: Es gibt einen Eingang, der unter Strom stehen kann (und in der Regel auch unter Strom steht) und einen Ausgang, der Strom führend sein kann (dann brennt das Licht) oder nicht (das Licht bleibt aus). Das sind die beiden Zustände, die der Schalter haben kann und daraus leitet sich das Binärsystem ab. Bei jedem Schalter kommt noch eine dritte Leitung dazu, die Steuerleitung. Beim Lichtschalter ist dies der Mensch, der ihn mechanisch drückt, beim Computer entscheidet die Steuerleitung, ob der Strom von der Eingangsleitung passieren darf oder nicht.

Mit der Kombination von wenigen Transistoren kann man sehr einfach Logikgatter bauen. Das sind Schaltungen die einen oder (meist) mehrere Eingänge logisch verknüpfen. Aufgrund der Funktionsweise von Transistoren ist das einfachste mögliche Gatter ein NAND-Gatter, das ist ein Gatter, das zwei Eingänge zuerst UND-verknüpft und dann das Ergebnis negiert. Bei einem NAND-Gatter ist der Ausgang immer 1, wenn beide Eingänge auf 0 sind, sonst ist es auf 1. Für ein NAND-Gatter braucht man nur zwei Transistoren. Es sind aber auch andere logische Gatter denkbar, wie UND, ODER, NICHT, Exklusiv-ODER etc. Sie alle kann man aus dem einfachen NAND-Gatter konstruieren, sodass dieses ein Standardelement ist. Einen Addierer kann man auch mit einer logischen Verknüpfung bauen. Für einen Addierer der nur zwei Bits addiert gilt:

Es gibt drei Eingänge: Einen für das Bit der Zahl 1 (A), einen für das Bit der Zahl 2 (B) und einen für einen Übertrag, der bei der Addition entstehen kann (C), wenn er z.B. nicht die erste, sondern zweite Stelle addieren soll. Die beiden Ausgänge sind der Übertrag (D) und das Ergebnisbit (E). Wenn man den Übertrag D dann an einen weiteren Addierer für die nächste Stelle weiterleitet und dort als Eingang C genutzt wird, dann kann man durch Kombination mehrerer dieser Schaltungen einen Addierer aufbauen, der mehrere Bits addiert. Für die Addition eines Bits braucht man 14 NAND Gatter, also 28 Transistoren, ein 4-Bit-Addierer besteht aus 4 dieser Elemente also 112 Transistoren.4 Bit Addierer Den Preis den man durch Verwendung eines einzigen Schaltelementes zahlt, ist das man mehr Gatter braucht, denn würde man nur UND und ODER Gatter einsetzen, so würden zwei ODER- und drei UND-Gatter für jede Addierstufe ausreichen.

Ein solches Element kann immerhin eine einstellige dezimale Zahl addieren. Subtraktionen sind genauso möglich, man muss dazu nur die zweite Zahl in ihr Zweierkomplement umwandeln, dazu wird einfach jedes Bit invertiert, aus einer 1 wird eine 0 und umgekehrt. Multiplikationen und Divisionen sind komplexe Operationen, die meist mit einer einfachen Additionsschaltung und einem im Chip gespeicherten Programm durchgeführt werden. (Bild: Wikipedia)

Ein ähnliches Basisschaltelement ist das NOR-Gatter das aus parallel geschalteten Transistoren besteht. Der Apollo Bordcomputer bestand aus 5000 Nor Gattern, jedes mit drei Transistoren und 4 Widerständen. Es konnte eine NOR-Operation von drei Eingängen durchführen. Beim NOR sind die Ausgänge auf 0, wenn ein Eingang auf 1 ist, sind alle Eingänge auf 0, so ist der Ausgang auf 1.

Auch wenn die Rechnung in jedem Computer nach diesem System verläuft, ist es durchaus nicht selbstverständlich, dass auch die Zahlen so gespeichert werden. Bei den frühen Computern war es z.B. so, dass viele von ihnen die Zahlen als Dezimalziffern speicherten. Da eine Dezimalstelle 10 Werte einnehmen kann, benötigt man 4 Bits zum Speichern. 4 Bits können 16 Zustände einnehmen. Sechs der möglichen Werte die 4 Bits darstellen können, sind dann ungültig. Dies versprach Vorteile, als die Rechengeschwindigkeit klein war, dagegen der Aufwand beim Ausdruck oder beim Ausgeben die Binärdarstellung in die dezimale umzuwandeln dagegen groß. Die frühe Programmiersprache COBOL speichert so z.B. Zahlen ab, was dazu führte, dass man bei Programmen, welche die Jahreszahl speichern mussten, die „19“ wegließ, da diese Zahl immer konstant war (COBOL hatte ihre Blütezeit bis in die siebziger Jahre, da war das neue Jahrtausend noch in weiter Ferne). Unglücklicherweise wurden diese Programme über Jahrzehnte erweitert und sie hatten am 1.1.2000 dann ein kleines Problem: Da man die Jahreszahl wegließ, hätten sie dieses Datum als den 1.1.1900 angesehen. Man musste so die Programme aufwendig auf diesen Fehler durchsuchen und ihn beheben, was dem Phänomen die Bezeichnung "Year 2000 Bug" (Y2K Bug) einbrachte.

Jeder Computer kann eine bestimmte Anzahl an Bits simultan verarbeiten. Die Zahl wird dadurch festgelegt, wie viele Bits seine Schaltungen in einem Schritt verarbeiten können, entsprechend spricht man von 8, 16, 32 oder 64-Bit-Prozessoren. Das bedeutet aber nicht, dass man nicht auch größere Zahlen verarbeiten kann. Weil bei jeder Addition ein Übertrag entstehen kann, gibt es in den Prozessoren ein Übertragsbit und oft neben dem normalen Additionsbefehl einen zweiten Befehl, der dieses Übertragsbit zusätzlich addiert. So kann man eine 8-Bit-Addition, die mit obigem 4 Bit Addierer nicht möglich ist, durch eine 4-Bit-Addition (niedrigstwertige 4 Bits) und eine 4-Bitaddition mit Übertrag (höherwertige 4 Bits) ersetzen.

Will man Speicherinhalte ausgeben, von denen man die Struktur nicht weiß, so haben sich zwei weitere Systeme eingebürgert. Das Erste und verbreitete ist das Hexadezimalsystem. Es basiert auf der Zahl 16 und kann so 4 Bits ausgeben. Ein Byte mit 8 Bit kann man so durch zwei Dezimalziffern darstellen. Da unsere Ziffern bei der 9 aufhören, hat man für die Werte von 10 bis 15 die Buchstaben A bis F genommen. Gegenüber der Dezimalschreibweise hat dies den Vorteil, dass man Muster leichter erkennen kann. So hat die Bitfolge „01010101“ eine alternierende Folge von Nullen und Einsen. In der Dezimalschreibweise ist es die Zahl 85 und man sieht diesen Umstand nicht. Im Hexadezimalsystem ist es die 55 und man kann erkennen das beide 4-Bit-Teile, (in der Fachsprache Nibbles genannt) das gleiche Bitmuster haben.

Das zweite früher für die Speicherausgabe eingesetzte Zahlensystem ist das Oktalsystem. Es ist vor allem in der Programmiersprache C verbreitet. Das Oktalsystem nutzt nur die Zahlen 0 bis 7, um drei Bits wiederzugeben. Es hat seinen Ursprung darin, dass „C“, auf einem Rechner mit 6 Bits pro Byte und 36 Bits pro Datenwort entwickelt wurde. Hier machte es sinn die Daten 3 Bit weise auszugeben (zwei bzw. zwölf Symbole). Da heute das Byte mit 8 Bit verbreitet ist, spielt es keine Rolle mehr.

Veröffentlichungsdatum des Artikels: 13.10.2013

Zum Thema Computer ist auch von mir ein Buch erschienen. "Computergeschichte(n)" beinhaltet, das was der Titel aussagt: einzelne Episoden aus der Frühzeit des PC. Es sind Episoden aus den Lebensläufen von Ed Roberts, Bill Gates, Steve Jobs, Stephen Wozniak, Gary Kildall, Adam Osborne, Jack Tramiel und Chuck Peddle und wie sie den PC schufen.

Das Buch wird abgerundet durch eine kurze Erklärung der Computertechnik vor dem PC, sowie einer Zusammenfassung was danach geschah, als die Claims abgesteckt waren. Ich habe versucht ein Buch zu schreiben, dass sie dahingehend von anderen Büchern abhebt, dass es nicht nur Geschichte erzählt sondern auch erklärt warum bestimmte Produkte erfolgreich waren, also auf die Technik eingeht.

Die 2014 erschienene zweite Auflage wurde aktualisiert und leicht erweitert. Die umfangreichste Änderung ist ein 60 Seiten starkes Kapitel über Seymour Cray und die von ihm entworfenen Supercomputer. Bedingt durch Preissenkungen bei Neuauflagen ist es mit 19,90 Euro trotz gestiegenem Umfang um 5 Euro billiger als die erste Auflage. Es ist auch als e-Book für 10,99 Euro erschienen.

Mehr über das Buch auf dieser eigenen Seite.

Hier geht's zur Gesamtübersicht meiner Bücher mit direkten Links zum BOD-Buchshop. Die Bücher sind aber auch direkt im Buchhandel bestellbar (da ich über sehr spezielle Themen schreibe, wird man sie wohl kaum in der Auslage finden) und sie sind natürlich in den gängigen Online-Plattformen wie Amazon, Libri, Buecher.de erhältlich.


© des Textes: Bernd Leitenberger. Jede Veröffentlichung dieses Textes im Ganzen oder in Auszügen darf nur mit Zustimmung des Urhebers erfolgen.
Sitemap Kontakt Impressum / Datenschutz Neues Hier werben / advertisment here Buchshop Bücher vom Autor Top 99