Checkmark on Circle.png

Zweierkomplement

Aus KGS-Wiki
Version vom 19. Juni 2024, 14:24 Uhr von Sn (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „mini|Das Zweierkomplement für dreistellige Zahlen als Zahlenkreis dargestellt Das Zweierkomplement ist eine Möglichkeit, negative Zahlen binär darzustellen ohne dafür ein besonderes Vorzeichen wie + oder - zu benötigen. Mithilfe des Zweierkomplements können nicht nur negative Zahlen beschrieben werden, sondern damit kann auch die Subtraktion als Addition umgesetzt werden, was den Aufbau von […“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Das Zweierkomplement für dreistellige Zahlen als Zahlenkreis dargestellt

Das Zweierkomplement ist eine Möglichkeit, negative Zahlen binär darzustellen ohne dafür ein besonderes Vorzeichen wie + oder - zu benötigen. Mithilfe des Zweierkomplements können nicht nur negative Zahlen beschrieben werden, sondern damit kann auch die Subtraktion als Addition umgesetzt werden, was den Aufbau von Rechenwerken erheblich vereinfacht.

Die Grundidee ist, dass man für alle Zahlen eine feste Länge annimmt und das erste Bit als Vorzeichenbit betrachtet. Üblicherweise wird 0 als positives und 1 als negatives Vorzeichen verwendet.

Bei 4 Bit langen Zahlen ist also die größte positive Zahl und die Zahlen sind negativ, wobei und . Warum das so ist, wird im Folgenden erklärt:

Um eine negative Zahl zu erhalten, nehme man ihr positives Gegenstück, ziehe 1 ab[1] und invertiere dann alle Bits, d.h. aus den 0en werden 1en und umgekehrt.

💬
Beispiel

Wir bleiben bei 4 Bit langen Zahlen:und nehmen als Beispiel. Diese wird nun wie folgt in ihr negatives Gegenstück umgewandelt:

  1. Ziehe 1 ab:
  2. Invertiere alle Bits:

Die Zweierkomplement-Darstellung von ist also

Allgemein können mit Bits die Zahlen von bis dargestellt werden.

In modernen Computern werden typischerweise 32 oder 64 Bit als Wortlänge verwendet. Beim Programmieren hängt die Wortlänge oft vom verwendeten Datentyp ab. Zum Beispiel ist der Datentyp int für Ganzzahlen typischerweise 32 Bit lang. Wenn 1 Bit für das Vorzeichen reserviert ist, bleiben noch 31 Bits für die eigentliche Zahl übrig. Die größte Zahl, die man mit einem int darstellen kann, ist also . Was passieren kann, wenn man zu dieser Zahl 1 hinzuzuaddieren versucht, zeigen die beiden folgenden Abbildungen:

Manche Programmiersprachen wie C produzieren bei derartigen Rechenoperationen keine Fehlermeldung oder Warnung. In anderen Sprachen wie JavaScript wird Infinity als Ergebnis ausgegeben, wenn Zahlen zu groß werden. In wieder anderen Sprachen wie Python gibt es so gut wie keine Einschränkungen für die Größe von Zahlen.

Weblinks

Fußnoten

  1. Wenn man nicht 1 abzieht, kann man zwar immer noch jeder positiven Zahl ein negatives Gegenstück zuweisen und umgekehrt, aber dann gibt es zwei Darstellungen für die 0, nämlich und und das bringt wieder neue Probleme mit sich.