Zahlen im Computer

Die Komponenten eines Computers

Die Komponenten, die für die Funktion eines Computers wesentlich sind, lassen sich in mehrere Grundelemente aufteilen, die bestimmte Aufgaben erfüllen.

Komponenten eines Computers

Grundkomponenten eines Computers

  1. Eingabe (Input)
  2. Ausgabe (Output)
  3. Speicher (Memory)
  4. Steuerwerk
    (Control-Unit)
  5. Rechenwerk
    (Arithmetic-Logic-Unit)

Die Eingabe und Ausgabe von Daten (Input/Output oder I/O) zum oder vom Computer wird durch unterschiedliche Peripheriegeräte bewerkstelligt. Die externen Daten müssen in computerlesbare Daten übersetzt werden. Die Daten, die der Computer generiert müssen in eine passende Form übersetzt werden. In vielen Fällen müssen Daten generiert werden, die für den Menschen lesbar sind (human readable Data). Im Laufe der Zeit wurden hierfür die unterschiedlichsten technischen Lösungen entwickelt.

Die Daten, mit denen der Computer arbeitet und die er während seiner Berechnungen generiert, müssen irgendwo gespeichert werden. Dazu besitzt der Computer einen Speicher (Memory), der aus mehreren Komponenten bestehen kann. Daten, mit denen der Computer direkt arbeitet, werden normalerweise im Binärformat gespeichert, da auch der Speicher üblicherweise nur zwei Zustände kennt.

Das Steuerwerk (Control-Unit) steuert den Programmablauf und sorgt dafür, dass alle Komponenten des Computers zur rechten Zeit mit den nötigen Daten versorgt werden.

Die ALU

Das Rechenwerk (Aritmetic-Logic-Unit oder ALU) ist die Komponente eines Computers, in der die Berechnungen stattfinden. Die ALU beherrscht einige Grundfunktionen, mit denen sie die notwendigen Berechnungen durchführt. Der Knackpunkt ist, dass komplexere Funktionen durch schnelle wiederholte Anwendung dieser Grundfunktionen der ALU generiert werden können.

In ihrer einfachsten Form beherrscht eine ALU nur eine einzige mathematische Operation, nämlich die Addition. Außerdem beherrscht sie die logischen Grundoperationen UND, ODER, NICHT und das Bit-Shifting (Bitweise Verschieben einer Bitfolge). Aus diesen Grundoperationen können die Subtraktion, Multiplikation und Division durch geeignete Algorithmen abgeleitet werden.

Der scheinbare "Mangel an Grundrechenarten", die eine ALU beherrscht, liegt darin begründet, dass anfangs die elektronischen Komponenten, aus denen eine ALU bestand, groß, sperrig und vor allem teuer waren. Eine Minimalkonfiguration musste genügen.

In modernen ALUs sind auch Multiplikation und Fließkommaoperationen direkt integriert, was die Rechengeschwindigkeit vervielfacht. Durch die heutige hohe Integrationsdichte von Bauteilen auf einem Mikrochip fällt der zusätzliche Bauteileaufwand praktisch nicht ins Gewicht.

Moderne Computer und Mikroprozessoren

Heutige Computerprozessoren nennt man CPU (Central-Processing-Unit). Auf einer CPU sind die Funktionen von CU und ALU vereinigt. Die fortschreitende Miniaturisierung macht es möglich, auch weitere Grundkomponenten auf einem Halbleiterchip zu vereinigen. Das Ganze nennt man dann SoC (System on a Chip). Man sollte sich vor Augen führen, dass die Steuerung von modernen Haushaltsgeräten auf SoCs basiert, die ein Vielfaches an Rechenpower im Vergleich zu den ersten Computern (die ganze Turnhallen gefüllt haben) besitzen.

Die Darstellung von Zahlen im Computer

Die Möglichkeiten, Zahlen im Computer darstellen zu können, sind prinzipiell durch den Speicherplatz und die Rechenleistung beschränkt. Wie Zahlen computer-intern verarbeitet und gespeichert werden ist vom Anwendungsfall abhängig.

Integer (Ganzzahlen)

Häufig werden beim Ausführen von Programmen oder bei einfachen Berechnungen Ganzzahlen benötigt. Man nennt diese auch Integer. Diese werden im Computer im Binärformat gespeichert. Man unterscheidet zwischen vorzeichenlosen Integern (unsigned Integer) und vorzeichenbehafteten Integern (signed Integer)

Vorzeichenlose Integer

Unsigned Integer sind Ganzzahlen, deren Darstellung im Computer direkt dem Binärsystem entspricht. Die Anzahl der Bits, die eine Integerzahl umfasst (Wortbreite) ist normalerweise eine Zweierpotenz, also 8, 16, 32, 64 oder 128. Eine Integerzahl mit 16 Bit Wortbreite umfasst die Zahlen von 0 bis 216-1=65535.

Vorzeichenbehaftete Integer

Um sinnvolle Berechnungen anstellen zu können benötigt man negative Zahlen. Das negative Vorzeichen wird durch das Vorzeichen-Bit einer vorzeichenbehafteten Integerzahl (signed Integer) dargestellt. Dies ist normalerweise das höchstwertige Bit (erstes Bit) einer Integerzahl.

Es gibt drei gängige Darstellungsformen von vorzeichenbehafteten Integerzahlen.

Die Betrags-Vorzeichen Darstellung

Bei der Betrags-Vorzeichen Darstellung (BV) steht das erste Bit für das Vorzeichen (Vorzeichen-Bit), die restlichen Bits stehen für die Zahl, die dargestellt werden soll.

Beispiel: 8-Bit Integer

00110001(2),BV=49(10)

10110001(2),BV=-49(10)

Die BV-Darstellung hat jedoch ein Problem: Die Null ist doppelt vergeben.

00000000(2),BV=10000000(2),BV

Die Einerkomplement Darstellung

Bei der Einerkomplement Darstellung (1K) steht das erste Bit für das Vorzeichen (Vorzeichen-Bit). Die restlichen Bits stehen für die Zahl, die dargestellt werden soll. Jedoch werden diese im Fall einer negativen Zahl invertiert.

Beispiel: 8-Bit Integer

00110001(2),1K=49(10)

11001110(2),1K=-49(10)

Auch die 1K-Darstellung hat ein Problem: Die Null ist doppelt vergeben.

00000000(2),1K=11111111(2),1K

Die Zweierkomplement Darstellung

Auch bei der Zweierkomplement Darstellung (2K) steht das erste Bit für das Vorzeichen (Vorzeichen-Bit).

Ist die Zahl positiv, also das VZ-Bit Null, so ergeben die restlichen Stellen die Zahl in Binärformat.

Um das Problem mit der Doppelbelegung der Null zu umgehen, werden negative Zahlen in der 2K-Darstellung folgendermaßen gebildet:

  • Das VZ-Bit wird gesetzt.
  • Die Bits des Betrags der Zahl werden wie bei der 1k-Darstellung invertiert.
  • Nach dem Invertieren wird 1 addiert.

So erhält man die 2K-Darstellung einer negativen Zahl.

Beispiel: 8-Bit Integer

00110001(2),2K=49(10)

11001110(2),1K=-49(10)

Addition von 1 zum Betrag:

1001110+1=1001111

11001111(2),2K=-49(10)

Bei der 2K-Darstellung gibt es keine Doppelvergabe der Null.