Wie rechnet eigentlich ein Computer?

Saturday, 5. April 2008 at 14:21 Uhr

“Mit Einsen und Nullen natürlich”, werden jetzt die meisten sagen.
Aber wie funktioniert dies eigentlich? Wie kann ich eine Zahl wie 5 mit 15 addieren, obwohl sie nur aus Einsen und Nullen besteht?

Der Computer arbeitet intern mit einer Reihe von Registern*, man könnte dies auch Schalter nennen, die einen Zustand von Nullen und Einsen annehmen können. Nehmen wir mal an, unser Register hat Platz für vier Zustände, Eine Eins bedeutet, dass durch dieses Register Strom hindurch fliesst, eine Null hingegen steht für keinen Strom.

Dies könnte dann z.B. so aussehen:
1 1 1 0

Welche Zahl wird hier wohl dargestellt?
Ist es eine 3?
Eine 0?
Nein, es ist eine 14!!

Der Computer rechnet bildlich dargestellt von rechts nach links, beginnend mit dem Wert 1 und jede weitere Stelle ist eine Verdoppelung der Vorangegangenen Stelle.

Dies werden wir uns an dem obigen Beispiel veranschaulichen:
1 1 1 0
8 4 2 1

Die erste Stelle von rechts aus gesehen hat eine Null, dort fliesst also kein Strom durch das Register und es wird keinen Wert gesetzt. Die erste Stelle welche die Zahl 1 darstellt bleibt also leer.
Die zweite Stelle des Register von rechts aus gesehen, steht unter Strom und dort ist demnach eine Eins gesetzt. Der Wert an dieser Stelle repräsentiert eine 2
Die dritte und vierte Stelle sind ebenfalls unter Strom gesetzt und entsprechen einem Wert von 4 und 8.
Die Zahlen lassen sich nun zusammenzählen 2 + 4 + 8 und ergeben zusammen 14.

Wenn wir nun alle vier Stellen des Register mit einer Eins füllen, werden wir eine Zahl von 15 erhalten (1 + 2 + 4 + 8 = 15)
Eine höhere Zahl als 15 lässt sich bei einem Register mit vier Stellen nicht realisieren, man spricht hier auch von einem Register welches 4 bit aufnehmen kann.

Unsere kleine Rechenaufgabe von oben können wir aber mit einem 4 bit Register nicht lösen, da es schlicht zu wenig Stellen hat. Also nehmen wir ein 8 bit Register:

0   0  0  0  1 1 1 1
0   0  0  0  0 1 0 1
0   0  0  1  0 1 0 0
128 64 32 16 8 4 2 1

Ein 8 bit Register kann Zahlen bis zu 255 (11111111 = 255) aufnehmen und 8 bit entspricht 1 Byte und 1 Byte besteht immer aus 8 bit’s.

Wie man nun sehr deutlich sehen kann, steigt die Anzahl der möglichen Zahlen rapide an (Märchen vom Schachbrett und dem Reiskorn) und ein 32 bit Rechner, welche wir tagtäglich benutzen, kann in solch einem Register die maximale Zahl von 4’294’967’296 darstellen, was 2^32 entspricht.
Natürlich können Computer auch noch grössere Zahlen in einem 32 bit System zum berechnen benutzen, nur nicht mehr in einem Schritt sondern in mehreren Zwischenschritte.

Ein schönes Beispiel findet man auch bei den Grafikkarten. Die Anzahl möglicher Farben wird hier meistens mit 8, 16, 24 oder 32 bit angegeben. Bei 16 bit sind es 65’536 Farben, welche die Grafikkarten darstellen kann und bei 24 bit immerhin schon 16’777’216 Farben, welches auch “True Color” genannt wird.

* Der Terminus “Registern” ist in diesem Zusammenhang nur teilweise richtig, sollte aber helfen dieses Beispiel hier besser zu verstehen.

Post to Twitter Post to Facebook Send Gmail