Dualsystem/Grundrechenarten

Aus Foxwiki
Version vom 21. März 2024, 21:07 Uhr von Dirkwagner (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Grundrechenarten im Dualsystem

Analog zu den Zahlen im Dezimalsystem lassen sich mit Dualzahlen die gängigen arithmetischen Grundoperationen Addition, Subtraktion, Multiplikation und Division durchführen. Tatsächlich werden die benötigten Algorithmen sogar einfacher und lassen sich effizient mit logischen Schaltungen elektronisch realisieren. Die Einführung von Dualzahlen in der Rechentechnik brachte daher viele Vorteile.

Addition Beispiel

0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0, Übertrag (carry) 1

Subtraktion Beispiel

0 − 0 = 0
0 − 1 = 1, Übertrag (borrow) 1
1 − 0 = 1
1 − 1 = 0

Multiplikation Beispiel

0 0 = 0
0 1 = 0
1 0 = 0
1 1 = 1

Division Beispiel

0 / 0 = n.def.
0 / 1 = 0
1 / 0 = n.def.
1 / 1 = 1

Schriftliche Addition

A B M1 M2 E
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

Die binäre Addition ist eine grundlegende Basisoperation in der Computerwelt. Will man zwei nicht negative Binärzahlen und addieren, kann man das wie im Dezimalsystem tun. Nur muss man beachten, dass beim Ergebnis an der jeweiligen Stelle keine „Zwei“ notiert wird, sondern eine Null und an die nächste Stelle ein Übertrag. Das geschieht analog zur Dezimaladdition, wenn sich bei der Addition einer Stelle eine Zehn ergibt:

Die Zahlen werden übereinander aufgeschrieben. Nun arbeitet man von rechts nach links alle Binärziffern (=Bits) von und simultan ab und erzeugt in jedem Zwischenschritt ein Ergebnisbit sowie ein Merkerbit (auch Übertrag genannt). Dabei werden die Bits entsprechend der Tabelle rechts zusammengezählt. In den Spalten A und B sind die Bits der zu addierenden Zahlen zu finden. In der Spalte steht das Merkerbit des vorherigen Zwischenschrittes. Daraus ergeben sich (entsprechend dieser Tabelle, welche einem Volladdierer entspricht) ein Ergebnisbit (E) und ein neues Merkerbit (). Alle Ergebnisbits, von rechts nach links aneinandergereiht, stellen das Resultat dar. Entsteht beim letzten Zwischenschritt ein Merkerbit, so bekommt das Resultat links eine zusätzliche 1.

Am besten sieht man das anhand eines Beispiels. Hier werden die Zahlen A und B zusammengezählt. In jedem Schritt wird ein anfallendes Merkerbit bei der nächsten Ziffer notiert.

A = 10011010 (154)
B = 00110110 ( 54)
Merker = 01111100
————————
Ergebnis = 11010000 (208)
‗‗‗‗‗‗‗‗

Schriftliche Subtraktion

Die Subtraktion verhält sich analog zur Addition.

, Übertrag (borrow) 1

Zwei Zahlen im Dualsystem können voneinander wie im folgenden Beispiel dargestellt subtrahiert werden:

Hier wird die Subtraktion   110−23 = 87   durchgeführt. Die kleinen Einsen in der dritten Reihe zeigen den Übertrag. Das Verfahren ist das Gleiche, wie es in der Schule für das Dezimalsystem unterrichtet wird. Etwas ungewohnt sieht der Fall 0−1 aus. Zur Verdeutlichung das Beispiel 2−9 im Dezimalsystem: Man denkt sich eine Zehnerstelle vor die Zwei, wodurch sich die Subtraktion 12−9 ergibt. Die gedachte Zehnerstelle wird dann als Übertrag an die nächste Stelle weitergereicht. Im Dualsystem geschieht das Gleiche: Aus 0−1 wird 10−1. Als Ergebnis kann also eine 1 hingeschrieben werden; die vor die 0 gedachte Eins muss dann als Übertrag an die nächste Stelle geschrieben und von dieser zusätzlich abgezogen werden.

Das Verfahren funktioniert (wie auch im Dezimalsystem) nicht, wenn der Minuend (1. Zahl) kleiner ist als der Subtrahend (2. Zahl). Sollte das der Fall sein, erfolgt die Subtraktion einer Zahl durch die Addition des Zweierkomplementes dieser Zahl. Die Subtraktion einer positiven Zahl ergibt nämlich das gleiche Ergebnis wie die Addition der entsprechenden negativen Zahl mit dem gleichen Betrag:

Wäre der (blau markierte) Übertrag 1, müsste das Zweierkomplement des Ergebnisses nicht mehr gebildet werden, da die vorzeichenlose Darstellung der positiven Zahlen im Zweierkomplement gleich ist (siehe Tabelle dort). Der Übertrag wird zu den (nicht dargestellten) führenden Einsen des Zweierkomplementes addiert, wodurch im Ergebnis nur führende Nullen entstehen. Als Beispiel dient die obige Rechnung 110−23 = 87  :

Schriftliche Multiplikation

Die Multiplikation wird im Dualsystem genauso durchgeführt wie im Dezimalsystem. Dadurch, dass nur 0 und 1 als Ziffern vorkommen, ist die schriftliche Multiplikation jedoch sogar einfacher. Das folgende Beispiel, in dem die Zahlen 1100 (12) und 1101 (13) multipliziert werden, zeigt die Vorgehensweise.

Zuerst schreibt man die Aufgabenstellung in eine Zeile und zieht zur Vereinfachung einen Strich darunter.

1100 · 1101
———————————

Die erste Ziffer des zweiten Faktors ist eine Eins und deshalb schreibt man den ersten Faktor rechtsbündig unter diese Eins.

1100 · 1101
———————————
1100

Auch für alle weiteren Einsen des zweiten Faktors schreibt man den ersten Faktor rechtsbündig darunter.

1100 · 1101
———————————
1100
1100
0000
1100

Die so gewonnenen Zahlen zählt man dann zum Ergebnis der Multiplikation zusammen.

1100 · 1101
———————————
1100
+ 1100
+ 0000
+ 1100
———————————
10011100 (156)

Ein besonders einfacher Fall ist die Multiplikation einer positiven Dualzahl mit der Zahl 10 (2). In diesem Fall muss lediglich an die positive Dualzahl eine 0 angehängt werden:

usw.

Für diese Rechenoperation existieren einfache Befehle in der Digitaltechnik.

Bei der Multiplikation zweier Zweierkomplement-Dualzahlen wird der Booth-Algorithmus benutzt.

Schriftliche Division

Bei der Division zweier Dualzahlen werden folgende Algorithmen verwendet.

Am Beispiel der Division von 1000010 / 11 (entspricht 66:3 im Dezimalsystem)

1000010 ÷ 11 = 010110 Rest 0 (= 22 im Dezimalsystem) somit mod
− 011
—————
00100
− 011
————
0011
− 011
—————
0

Die Anwendung der Modulo-Funktion mit dem Divisor 10 (2) auf positive Dualzahlen ergibt immer 1, wenn die letzte Ziffer des Dividenden 1 ist und 0, wenn die letzte Ziffer des Dividenden 0 ist:

Für diese Rechenoperation, die einer UND-Verknüpfung mit 1 entspricht, existieren einfache Befehle in der Digitaltechnik.

Ein besonders einfacher Fall ist die Division mit Rest einer positiven Dualzahl durch die Zahl 10 (2). In diesem Fall muss lediglich die letzte Ziffer des Dividenden gestrichen werden. Ist die letzte Ziffer des Dividenden eine 1, so verschwindet dieser Rest. Entspricht bei diesem Verfahren die Anzahl der Divisionen durch 2 der Anzahl der Stellen des Dividenden, so ist das Endergebnis immer 0:

Für diese Rechenoperation existieren einfache Befehle in der Digitaltechnik.