Binär, Inversion und Komplementcodes

Binär-, Einerkomplement- (Inversions) und Zweierkomplementcodes

Diese Webseite exisiert dank der Arbeit von den folgenden Menschen:

Timur

Timur

Stefan Roesner

Erstellt: 2020-10-06 10:49:47, Letzte Aktualisierung: 2020-11-03 14:19:40

Dieser Rechner wandelt eine eingegebene Ganzzahl (positive und negative) in eine Binärform und zeigt deren Inversions- und Komplementcodes an.

Unter dem Rechner ist wie immer eine Erklärung worum es in dem Rechner geht.

PLANETCALC, Binär, Inversion und Komplementcodes

Binär, Inversion und Komplementcodes

Bereich
 
Binärcode
 
Inversionscode (Einerkomplement)
 
Komplementcode (Zweierkomplement)
 

Hier ist ein wenig Theorie

Binärcode ist die binäre Darstellung einer nicht signierten Ganzzahl. In der Informatik gibt es eine bestimmte Anzahl von Bits, die verwendet werden um eine Zahl darzustellen. Der Gesamtbereich, der durch die n-Bits dargestellt werden kann, ist
2^n

Inversionscode oder Einerkomplement ist ein einfacher invertierter Binärcode von einer Zahl. Dadurch werden alle Nullen eine Eins, und alle Einsen werden eine Null.

Komplementcode oder Zweierkomplement ist ein Inversionscode plus eins

Nun, was bedeutet dies?

Diese Codes wurden entwickelt, um Schilderbedienungen für Maschinen einfacher zu machen. Da ich eine Person bin, die anhand Beispiele lernt, erkläre ich diese Beschreibung mit einem Beispiel.

Nehmen wir mal an, dass wir einen Computer mit 4-Bits Binärzahlen haben. Der Gesamtbereich von 4-Bits ist
16 - 0,1,... 15
00 - 0000
...
15 - 1111

Aber dies sind nicht-signierte Zahlen und daher nicht von Nutzen. Wir müssen ein Zeichen setzen. Dies bedeutet, dass die Hälfte des Bereiches als positive Zahlen (acht, inklusive Null) genommen wird, und die andere Hälfte als negative Zahlen (ebenfalls 8). Bitte beachten Sie, das Maschinen, im Gegensatz zur normalem Mathematik, die Null als eine positive Zahl ansehen.

Unsere positive Zahlen sind 0 – 7, und unsere negativen Zahlen sind -1 - -8.

Um zwischen positiven und negativen Zahlen zu unterscheiden, weisen wir das am weitesten links stehende Bits als Signalbit zu.

Positive Zahlen werden als einfache Binärcode dargestellt.
0 - 0000
1 - 0001
...
7 - 0111

Aber wie werden negative Zahlen dargestellt? Hierzu nutzt man den Komplementcode.
So ein -7 Komplement ist
Binär 7 = 0111
Inversion 7 = 1000
Komplement 7 = 1001

Bitte beachten Sie, dass die Binärzahl 1001 eine 9 ist, welche sich on -7 bis 16 unterscheidet, oder 2^4. Oder der Komplementcode „komplementiert“ den Binärcode zu 2^n, z.B. 7+9=16.

Dies erwies sich als sehr nützlich von Maschinenberechnungen. Die Nutzung von Komplementcodes, zur Darstellung von negativen Zahlen ermöglicht es Ingenieuren, das Additionsschema sowohl für Addition als auch für Subtraktion zu verwenden. Dies vereinfachte das ALU Design (arithmetische und logische Einheit – Teil eines Computerprozessors). Die Darstellung ermöglicht auch eine leichte Erkennung von einem Überlauf, wodurch es nicht genug Bits gibt um eine Zahl darzustellen.

Hier sind einige Beispiele:

7-3=4
0111 Binäry 7
1101 Zweierkomplement von 3
0100 Ergebnis von Addition von 4

-1+7=6
1111 Zweierkomplement von 1
0111 Binär 7
0110 Ergebnis von Addition von 6

Ein Überlauf wird erkannt, indem die letzten beiden Überträge betrachtet werden, einschließlich des Übertrages vom Bit ganz rechts hinaus. Wenn die Übertrag-Bits 11 oder 00 sind, gibt es keinen Überlauf. Wenn die Übertrag-Bits 01 oder 10 sind, gibt es einen Überlauf. Und falls es keinen Überlauf gibt, kann man die Überträge nach dem am weitesten rechts liegenden Bit hinaus ignorieren.

Einige Beispiele mit Überträgen und fünften Bit (Bit jenseits des am weitesten rechts liegenden Bit):

7+1=8

00111 Binär 7
00001 Binär 1
01110 Überträge
01000 Ergebnis von Addition von 6 - Überlauf

Die letzten beiden Überträge sind 01. Dies signalisiert einen Überlauf.

-7+7=0
00111 Binär 7
01001 Zweierkomplement von 7
11110 Überträge
10000 Ergebnis von Addition von 16 - aber das fünfte Bit kann ignoriert werden, das wirkliche Ergebnis ist 0

Die letzten beiden Überträge sind 11. Es gibt keinen Überlauf, das korrekte Ergebnis is daher Null.

Einen Überlauf Test kann man mit einem einfachen XOR-ing von den letzten beiden Überträgen durchführen.

Aufgrund dieser praktischen Eigenschaften ist der Zweierkomplement die häufigste Methode um negative Zahlen auf einen Computer darzustellen.

PS: Inversionscode, oder Einerkomplement, „komplementieren“ Binärcodes zu 2^n-1, (alles Einsen). Dieser kann auch genutzt werden, um negative Zahlen darzustellen, aber das Additionsschema sollte jedoch einen zyklischen Übertrag nutzen, der komplexer ist. Außerdem wird der Bereich, der durch n-Bits dargestellt wird, um 1 reduziert, da 1111 als invertierter 0000 -negativer Nullpunkt belegt ist. Es ist daher weniger praktisch zu nutzen.

URL zum Clipboard kopiert
PLANETCALC, Binär, Inversion und Komplementcodes

Kommentare