Die Ergänzung von Two

Die Ergänzung des two einer Binärzahl wird als der erhaltene Wert durch das Abziehen der Zahl von einer großen Macht zwei definiert (spezifisch, von 2 für - hat die Ergänzung von two gebissen). Die Ergänzung des two der Zahl benimmt sich dann wie die Verneinung der ursprünglichen Zahl im grössten Teil der Arithmetik, und es kann mit positiven Zahlen auf eine natürliche Weise koexistieren.

Ein Two'S-Ergänzungssystem oder Two'S-Ergänzungsarithmetik, ist ein System, in dem negative Zahlen durch die Ergänzung des two des absoluten Werts vertreten werden; dieses System ist der grösste Teil der üblichen Methodik, unterzeichnete ganze Zahlen auf Computern zu vertreten. In solch einem System wird eine Zahl (umgewandelt vom positiven bis Verneinung oder umgekehrt) durch die Computerwissenschaft der Ergänzung seiner (d. h. seiner bitwise Ablehnung) und das Hinzufügen ein verneint. - Bit-Two'S-Ergänzungsziffer-System kann jede ganze Zahl in der Reihe −2 zu 21 vertreten, während die Ergänzung von nur ganze Zahlen in der Reihe &minus vertreten kann; (21) zu 21

Das Two'S-Ergänzungssystem hat den Vorteil, dass die grundsätzlichen arithmetischen Operationen der Hinzufügung, Subtraktion und Multiplikation, unabhängig davon identisch sind, ob die Eingänge und Produktionen als nicht unterzeichnete Binärzahlen oder die Ergänzung von two interpretiert werden (vorausgesetzt, dass Überschwemmung ignoriert wird). Dieses Eigentum macht das System sowohl einfacher durchzuführen als auch fähig dazu, leicht höhere Präzisionsarithmetik zu behandeln. Außerdem hat Null nur eine einzelne Darstellung, die Subtilität begegnend, die mit der negativen Null vereinigt ist, die in-Ergänzungssystemen besteht.

Die Ergänzung von Two wird Binary Number Representation (BNR) in in der Luftfahrt verwendeten Protokollen genannt (z.B. ARINC 429).

Die Methode von Ergänzungen kann auch in der Basis 10 Arithmetik mit den Ergänzungen von ten analog mit den Ergänzungen von two angewandt werden.

Erklärung

Two'S-Ergänzungszahlen

Die Ergänzungszahlen von Two sind eine Weise, negative Zahlen in die gewöhnliche Dualzahl, solch zu verschlüsseln, dass Hinzufügung noch arbeitet. Das Hinzufügen −1 + 1 sollte 0 gleich sein, aber gewöhnliche Hinzufügung gibt das Ergebnis 2 oder −2, wenn die Operation spezielle Notiz vom Zeichen nicht nimmt, hat gebissen und führt eine Subtraktion stattdessen durch. Die Ergänzung von Two läuft auf die richtige Summe ohne diesen Extraschritt hinaus.

Ein Two'S-Ergänzungszahl-System verschlüsselt positive und negative Zahlen in einer Binärzahl-Darstellung.

Die Bit haben einen binären Basis-Punkt, und die Bit werden gemäß der Position des Bit innerhalb der Reihe beschwert.

Eine günstige Notation ist die große-endian Einrichtung. In dieser Notation hat das Bit links vom binären Punkt wenig Index 0 und ein Gewicht 2. Die Bit-Index-Zunahme, durch eine, links vom binären Punkt und der Abnahme, durch eine, rechts vom binären Punkt.

Das Gewicht jedes Bit ist eine Macht zwei, abgesehen von ganz links Bit, dessen Gewicht eine negative Macht zwei ist.

Mit diesem numerierenden Bit wird die Ergänzungszahl des two (für eine Zahl) mit Bit der ganzen Zahl und Bruchbit durch eine Reihe von Bit vertreten (wo die möglichen Werte 0 und 1 für jeden abhängen):

:.

Der Wert dieser Zahl wird durch die folgende Formel gegeben.

:

Ganz links bestimmt Bit, auch genannt meist - bedeutendes Bit (MSB), das Zeichen der Zahl, aber verschieden von der Darstellung des Zeichens-Und-Umfangs, hat auch ein Gewicht, −2, wie gezeigt, in der Formel oben. Wegen dieses Gewichts ist es irreführend, dieses Bit zu nennen, das das "Zeichen gebissen hat".

Die Ergänzungsverschlüsselung des two, die oben gezeigt ist, kann die folgende Reihe von Zahlen vertreten

Nulldarstellung ist

:

Die größte Zahl ist positiv. Sein Wert ist

:

Die kleinste positive Zahl (kleinster absoluter Wert) ist

:

Die kleinste negative Zahl ist

:

Die größte negative Zahl (kleinster absoluter Wert) ist

:

Das Bilden der Ergänzung des two einer Zahl

In der Ergänzung von two werden positive Zahlen als Binärzahlen deren bedeutendstes Bit vertreten. Negative Zahlen werden mit die meisten - bedeutendes Bit vertreten, vom negativen Gewicht des ganz links Bit Gebrauch zu machen. Alle Basis-Ergänzungszahl-Systeme verwenden eine Verschlüsselung der festen Breite. Jede in solch einem System verschlüsselte Zahl hat eine feste Breite, so kann die meiste-positive-Ziffer untersucht werden.

(Der Algorithmus ist hauptsächlich wegen)

:1. Drücken Sie den binären Wert dafür aus (wichtig: Drücken Sie ALLE Koeffizienten aus)

:2. Wenn

::2a. Ergänzung jeder (d. h. ersetzen durch für)

::2b. Fügen Sie den Koeffizienten 1 hinzu (dieser 1 vertritt) zur letzten binären Darstellung. Die Hinzufügung führt zur Enddarstellung, für die ist

:::.

Im Allgemeinen, für eine Basis  's Ergänzungsverschlüsselung, mit der Basis (Basis) des Zahl-Systems,

ein Teil der ganzen Zahl von Ziffern und Bruchteil von Ziffern,

dann wird der  's Ergänzung einer Zahl durch die Formel bestimmt:

** = (  ) mod

(1) 's Ergänzung einer Zahl wird durch die Formel bestimmt:

* =    

Wir können auch den  's Ergänzung einer Zahl finden, indem wir  zu (1) 's Ergänzung der Zahl beitragen:

** = * + 

Alternativer Umwandlungsprozess

Eine Abkürzung, um eine Binärzahl in die Ergänzung seines two manuell umzuwandeln, soll am am wenigsten bedeutenden Bit (LSB) anfangen, und alle Nullen kopieren (von LSB zum bedeutendsten Bit arbeitend), bis der erste 1 erreicht wird; dann Kopie dass 1, und Flip alle restlichen Bit. Diese Abkürzung erlaubt einer Person, eine Zahl zur Ergänzung seines two ohne das erste Formen der Ergänzung seiner umzuwandeln. Zum Beispiel: Die Ergänzung des two von "0011 1100" ist "1100 0", wo die unterstrichenen Ziffern durch die Kopieren-Operation unverändert waren (während der Rest der Ziffern geschnipst wurde).

Im Computerschaltsystem ist diese Methode nicht schneller als die "Ergänzung, und fügen Sie eine" Methode hinzu; beide Methoden verlangen das Arbeiten folgend vom Recht bis linke, sich fortpflanzende Logikänderungen. Die Methode, zu ergänzen und beizutragen, kann eine durch einen Standard beschleunigt werden tragen Viper-Stromkreis des Blicks vorn; die alternative Methode kann durch eine ähnliche Logiktransformation beschleunigt werden.

Zeichen-Erweiterung

Wenn

man eine Two'S-Ergänzungszahl mit einer bestimmten Anzahl von Bit in eines mit mehr Bit (z.B dreht, wenn man von einer 1-Byte-Variable bis eine Zwei-Byte-Variable kopiert), die meisten - muss bedeutendes Bit in allen Extrabit und niedrigeren Bit wiederholt werden.

Einige Verarbeiter haben Instruktionen, das in einer einzelnen Instruktion zu tun. Auf anderen Verarbeitern muss ein bedingter gefolgt mit dem Code verwendet werden, um die relevanten Bit oder Bytes zu setzen.

Ähnlich, wenn eine Two'S-Ergänzungszahl nach rechts ausgewechselt wird, die meisten - bedeutendes Bit, das Umfang und die Zeichen-Information enthält, muss aufrechterhalten werden. Jedoch wenn ausgewechselt, nach links wird 0 darin ausgewechselt. Diese Regeln bewahren die allgemeine Semantik, die abgereist ist, multiplizieren Verschiebungen die Zahl mit zwei, und richtige Verschiebungen teilen die Zahl durch zwei.

Die sowohl Verschiebung als auch die Verdoppelung der Präzision sind für einige Multiplikationsalgorithmen wichtig. Bemerken Sie, dass verschieden von der Hinzufügung und Subtraktion Präzisionserweiterung und richtige Verschiebung verschieden für den unterzeichneten gegen nicht unterzeichnete Zahlen getan werden.

Die am meisten negative Zahl

Mit nur einer Ausnahme, wenn wir mit jeder Zahl in der Two'S-Ergänzungsdarstellung anfangen, wenn wir alle Bit schnipsen und 1 beitragen, bekommen wir die Two'S-Ergänzungsdarstellung der Verneinung dieser Zahl. Negative 12 werden positiv 12, positive 5 wird negativ 5, Null wird Null usw.

Die Ergänzung des two der minimalen Zahl in der Reihe wird die gewünschte Wirkung nicht haben, die Zahl zu verneinen. Zum Beispiel läuft die Ergänzung des two 128 in einem 8-Bit-System auf dieselbe Binärzahl hinaus. Das ist, weil ein positiver Wert von 128 mit der unterzeichneten binären Ziffer von 8 Bit nicht vertreten werden kann. Bemerken Sie, dass das als eine Überschwemmungsbedingung entdeckt wird, seitdem es ein Tragen in, aber nicht aus die meisten - bedeutendes Bit gab. Das kann zu unerwarteten Programmfehlern darin führen eine naive Durchführung des absoluten Werts konnte eine negative Zahl zurückgeben.

Die am meisten negative Zahl in der Ergänzung von two wird manchmal "die unheimliche Zahl genannt," weil es die einzige Ausnahme ist.

Obwohl die Zahl eine Ausnahme ist, ist es eine gültige Zahl in den Ergänzungssystemen des regelmäßigen two. Alle arithmetischen Operationen arbeiten damit sowohl als ein operand als auch (wenn es keine Überschwemmung gab) ein Ergebnis.

Warum es arbeitet

In Anbetracht eine Reihe haben alle möglich - Werte gebissen, wir können tiefer (durch den binären Wert) Hälfte damit beauftragen, die ganzen Zahlen von 0 bis (2−1) einschließlich und die obere Hälfte zu sein, um 2 zu −1 einschließlich zu sein. Die obere Hälfte kann verwendet werden, um negative ganze Zahlen von 2 bis −1 zu vertreten, weil unter der Hinzufügung modulo 2 sie sich derselbe Weg wie jene negativen ganzen Zahlen benehmen. Das heißt das, weil jeder Wert im Satz im Platz von j verwendet werden kann.

Zum Beispiel, mit acht Bit, sind die nicht unterzeichneten Bytes 0 bis 255. 256 von der Spitzenhälfte (128 bis 255) Erträge die unterzeichneten Bytes −128 zu 127 Abstriche machend.

Die Beziehung zur Ergänzung von two wird durch die Anmerkung dass 256 = 255 + 1 begriffen, und (255 − x) ist diejenigen Ergänzung von x.

Beispiel

−95 modulo 256 ist zu 161 seitdem gleichwertig

:−95 + 256

: = −95 + 255 + 1

: = 255 − 95 + 1

: = 160 + 1

: = 161

1111 1111 255

− 0101 1111 − 95

=========== =====

1010 0000 (die Ergänzung von) 160

+ 1 + 1

=========== =====

1010 0001 (die Ergänzung von two) 161

Im Wesentlichen vertritt das System negative ganze Zahlen durch das Zählen rückwärts und die Verpackung ringsherum. Die Grenze zwischen positiven und negativen Zahlen ist willkürlich, aber die De-Facto-Regel besteht darin, dass alle negativen Zahlen ganz links Bit (bedeutendstes Bit) einen haben. Deshalb ist die positivste 4-Bit-Zahl 0111 (7), und das negativste ist 1000 (−8). Wegen des Gebrauches ganz links Bit als das Zeichen Bit, der absolute Wert der am meisten negativen Zahl (|−8| = 8) ist zu groß, um zu vertreten. Zum Beispiel kann eine 8-Bit-Zahl nur jede ganze Zahl von −128 bis 127 (2 = 128) einschließlich vertreten. Das Verneinen einer Ergänzungszahl eines two ist einfach: Kehren Sie alle Bit um und fügen Sie dasjenige zum Ergebnis hinzu. Zum Beispiel, 1111 verneinend, kommen wir 0000 + 1 = 1. Deshalb muss 1111 −1. vertreten

Das System ist in der Vereinfachung der Durchführung der Arithmetik auf der Computerhardware nützlich. Das Hinzufügen 0011 (3) bis 1111 (−1) scheint zuerst, die falsche Antwort 10010 zu geben. Jedoch kann die Hardware einfach ganz links Bit ignorieren, um die richtige Antwort 0010 (2) zu geben. Überschwemmungskontrollen müssen noch bestehen, um Operationen wie das Summieren 0100 und 0100 zu fangen.

Das System erlaubt deshalb Hinzufügung negativen operands ohne einen Subtraktionsstromkreis und einen Stromkreis, der das Zeichen einer Zahl entdeckt. Außerdem kann dieser Hinzufügungsstromkreis auch Subtraktion durch die Einnahme der Ergänzung des two einer Zahl (sieh unten) durchführen, die nur einen zusätzlichen Zyklus oder seinen eigenen Viper-Stromkreis verlangt. Um das durchzuführen, gibt der Stromkreis bloß einen zusätzlichen ganz links vor Bit 1 besteht.

Das Rechnen der Ergänzung von two

In der Ergänzungsnotation von two wird eine positive Zahl durch seine gewöhnliche binäre Darstellung mit genug Bit vertreten, dass das hohe Bit (hat das Zeichen gebissen), 0 ist. Die Ergänzungsoperation des two ist die Ablehnungsoperation, so werden negative Zahlen durch die Ergänzung des two der Darstellung des absoluten Werts vertreten.

In der Entdeckung der Ergänzung des two einer Binärzahl werden die Bit umgekehrt, oder, durch das Verwenden des bitwise NICHT Operation "geschnipst"; der Wert von 1 wird dann zum resultierenden Wert hinzugefügt. Bit-Überschwemmung wird ignoriert, der der normale Fall mit dem Nullwert ist.

Zum Beispiel mussten der Anfang mit der unterzeichneten binären 8-Bit-Darstellung des dezimalen Werts 5, das Verwenden von Subschriften, um die Basis einer Darstellung anzuzeigen, seinen Wert interpretieren:

:

Das bedeutendste Bit ist 0, so vertritt das Muster einen nichtnegativen (positiven) Wert.

Um sich zu 5 in der Two'S-Ergänzungsnotation umzuwandeln, werden die Bit umgekehrt; 0 wird 1, und 1 wird 0:

:

An diesem Punkt ist die Ziffer diejenigen Ergänzung des dezimalen Werts 5. Die Ergänzung des two, 1 zu erhalten, wird zum Ergebnis hinzugefügt, gebend:

:

Das Ergebnis ist eine unterzeichnete Binärzahl, die den dezimalen Wert 5 in der Two'S-Ergänzungsform vertritt. Das bedeutendste Bit ist 1, so ist der vertretene Wert negativ.

Die Ergänzung des two einer negativen Zahl ist der entsprechende positive Wert. Zum Beispiel gibt das Umkehren der Bit 5 (oben):

:

Und das Hinzufügen von demjenigen gibt den Endwert:

:

Der Wert einer Two'S-Ergänzungsbinärzahl kann durch das Zusammenzählen der power-two Gewichte Bit berechnet werden, aber mit einem negativen Gewicht für das bedeutendste (Zeichen) hat gebissen; zum Beispiel:

:

Bemerken Sie, dass die Ergänzung des two der Null Null ist: Das Umkehren gibt alle und das Hinzufügen, dass derjenige diejenigen zurück zu Nullen ändert (die Überschwemmung wird ignoriert). Auch die Ergänzung des two der am meisten negativen Zahl wiederpräsentabel (z.B diejenige als die meisten - bedeutendes Bit und ganze andere Bit-Null) ist selbst. Folglich scheint es, eine 'zusätzliche' negative Zahl zu geben.

Eine mehr formelle Definition einer negativen Two'S-Ergänzungszahl (angezeigt durch * in diesem Beispiel) wird aus der Gleichung abgeleitet, wo die entsprechende positive Zahl ist und die Zahl von Bit in der Darstellung ist.

Zum Beispiel, um die 4-Bit-Darstellung 5 zu finden:

: deshalb

: = 4

Folglich:

:

Die Berechnung kann völlig in der Basis 10 getan werden, sich zur Basis 2 am Ende umwandelnd:

:

Arithmetische Operationen

Hinzufügung

Das Hinzufügen von Two'S-Ergänzungszahlen verlangt keine spezielle Verarbeitung, wenn die operands entgegengesetzte Zeichen haben: Das Zeichen des Ergebnisses wird automatisch bestimmt. Zum Beispiel, 15 und 5 beitragend:

11111 111 (tragen)

0000 1111 (15)

+ 1111 1011 (-5)

==================

0000 1010 (10)

Dieser Prozess hängt vom Einschränken auf 8 Bit der Präzision ab; ein Tragen zum (nicht existierenden) 9. bedeutendsten Bit wird ignoriert, auf das arithmetisch richtige Ergebnis 10 hinauslaufend.

Die letzten zwei Bit der tragen Reihe (Recht-zu-link lesend), enthalten Lebensinformation: Ob die Berechnung auf eine arithmetische Überschwemmung, eine für das binäre System zu große Zahl hinausgelaufen ist um (in diesem Fall größer zu vertreten, als 8 Bit). Eine Überschwemmungsbedingung besteht, wenn diese letzten zwei Bit von einander verschieden sind. Wie oben erwähnt wird das Zeichen der Zahl im MSB des Ergebnisses verschlüsselt.

In anderen Begriffen, wenn die linken zwei Bit tragen (diejenigen auf dem weiten, das der Spitzenreihe in diesen Beispielen verlassen ist), sind beide 1s oder beide 0s, das Ergebnis ist gültig; wenn die linken zwei tragen, sind Bit "1 0" oder "0 1", eine Zeichen-Überschwemmung ist vorgekommen. Günstig kann eine XOR Operation auf diesen zwei Bit schnell bestimmen, ob eine Überschwemmungsbedingung besteht. Als ein Beispiel, denken Sie die unterzeichnete 4-Bit-Hinzufügung von 7 und 3:

0111 (tragen)

0111 (7)

+ 0011 (3)

=============

1010 (6) Invalide!

In diesem Fall tragen die weiten linken zwei (MSB) Bit sind "01", was bedeutet, dass es eine Two'S-Ergänzungshinzufügungsüberschwemmung gab. D. h. 1010 = 10 ist außerhalb der erlaubten Reihe −8 zu 7.

Im Allgemeinen, irgendwelche zwei - Bit-Zahlen können ohne Überschwemmung, durch das erste Zeichen-Verlängern sie beide zu +1 Bit und dann das Hinzufügen als oben hinzugefügt werden. Das +1-Bit-Ergebnis ist groß genug, um jede mögliche Summe zu vertreten (z.B, 5 Bit können Werte in der Reihe −16 zu 15 vertreten), so wird Überschwemmung nie vorkommen. Es ist dann, wenn gewünscht, möglich, das Ergebnis zurück zu n Bit 'zu stutzen', während man den Wert bewahrt, wenn, und nur wenn das verworfene Bit eine richtige Zeichen-Erweiterung der behaltenen Ergebnis-Bit ist. Das stellt eine andere Methode zur Verfügung, Überschwemmung zu entdecken - der zur Methode gleichwertig ist, die tragen Bit zu vergleichen - aber der leichter sein kann, in einigen Situationen durchzuführen, weil es Zugang zum internals der Hinzufügung nicht verlangt.

Subtraktion

Computer verwenden gewöhnlich die Methode von Ergänzungen, Subtraktion durchzuführen. Das Verwenden von Ergänzungen für die Subtraktion ist nah mit dem Verwenden von Ergänzungen verbunden, um negative Zahlen zu vertreten, da die Kombination alle Zeichen von operands und Ergebnissen erlaubt; direkte Subtraktion arbeitet mit Two'S-Ergänzungszahlen ebenso. Wie Hinzufügung ist der Vorteil, die Ergänzung von two zu verwenden, die Beseitigung, die Zeichen des operands zu untersuchen, zu bestimmen, ob Hinzufügung oder Subtraktion erforderlich sind. Zum Beispiel 5 von 15 Abstriche zu machen, trägt wirklich 5 bis 15 bei, aber das wird durch die Two'S-Ergänzungsdarstellung verborgen:

11110 000 (leihen)

0000 1111 (15)

 1111 1011 (5)

===========

0001 0100 (20)

Überschwemmung wird derselbe Weg bezüglich der Hinzufügung, durch das Überprüfen der zwei leftmost (bedeutendste) Bit des Leihens entdeckt; Überschwemmung ist vorgekommen, wenn sie verschieden sind.

Ein anderes Beispiel ist eine Subtraktionsoperation, wo das Ergebnis negativ ist: 15  35 = 20:

11100 0000 (leihen)

0000 1111 (15)

 0010 0011 (35)

===========

1110 1100 (20)

Bezüglich der Hinzufügung kann die Überschwemmung in der Subtraktion vermieden (oder nach der Operation entdeckt werden) durch das erste Zeichen-Verlängern beide Eingänge durch ein Extrabit.

Multiplikation

Das Produkt zwei - Bit-Zahlen verlangt, dass 2 Bit alle möglichen Werte enthalten. Wenn die Präzision der zwei Two's-Ergänzung operands verdoppelt wird, vor der Multiplikation wird direkte Multiplikation (Verschrottung irgendwelcher Überbit außer dieser Präzision) das richtige Ergebnis zur Verfügung stellen. Nehmen Sie zum Beispiel 6 × −5 = −30. Erstens wird die Präzision von 4 Bit bis 8 erweitert. Dann werden die Zahlen multipliziert, die Bit darüber hinaus 8 (gezeigt durch 'x') verwerfend:

00000110 (6)

× 11111011 (5)

==========

110

1100

00000

110000

1100000

11000000

110000000

1100000000

==========

10111100010 (30)

NB:We zählen nur das 8-Formen-Bit, durch das Auslöschen der ersten Zahlen zum Bilden der 8-Bit-Form auf

Deshalb:

00000110 (6)

* 11111011 (5)

============

110

1100

00000

110000

1100000

11000000

x10000000

xx00000000

============

xx11100010

Das ist sehr ineffizient; durch die Verdoppelung der Präzision vorzeitig müssen alle Hinzufügungen doppelte Genauigkeit sein, und mindestens doppelt so viele sind teilweise Produkte erforderlich als für die effizienteren in Computern wirklich durchgeführten Algorithmen. Einige Multiplikationsalgorithmen werden für die Ergänzung von two, namentlich der Multiplikationsalgorithmus der Kabine entworfen. Methoden, um Zahlen des Zeichen-Umfangs zu multiplizieren, arbeiten mit Two'S-Ergänzungszahlen ohne Anpassung nicht. Es gibt nicht gewöhnlich ein Problem, wenn der multiplicand (derjenige, der wiederholt wird hinzufügt, um das Produkt zu bilden), negativ ist; das Problem setzt die anfänglichen Bit des Produktes richtig, wenn der Vermehrer negativ ist. Zwei Methoden, um Algorithmen anzupassen, um Two'S-Ergänzungszahlen zu behandeln, sind üblich:

  • Überprüfen Sie zuerst, um zu sehen, ob der Vermehrer negativ ist. Wenn so, verneinen Sie (d. h., nehmen Sie die Ergänzung des two) beide operands vor dem Multiplizieren. Der Vermehrer wird dann positiv sein, so wird der Algorithmus arbeiten. Weil beide operands, werden das Ergebnis verneint, noch das richtige Zeichen haben werden.
  • Ziehen Sie das teilweise Produkt ab, das sich aus dem MSB ergibt (Pseudozeichen hat gebissen), anstatt es wie die anderen teilweisen Produkte hinzuzufügen. Diese Methode verlangt, dass das Zeichen des multiplicand gebissen hat, um durch eine Position erweitert zu werden, während der Verschiebungsrecht-Handlungen bewahrt werden.

Als ein Beispiel der zweiten Methode, nehmen Sie den allgemeinen hinzufügen-und-auswechseln Algorithmus für die Multiplikation. Anstatt teilweise Produkte nach links auszuwechseln, wie mit dem Bleistift und Papier getan wird, wird das angesammelte Produkt Recht in ein zweites Register ausgewechselt, das schließlich die am wenigsten bedeutende Hälfte des Produktes halten wird. Da die am wenigsten bedeutenden Bit nicht geändert werden, sobald sie berechnet werden, können die Hinzufügungen einfache Präzision sein, im Register anwachsend, das schließlich die bedeutendste Hälfte des Produktes halten wird. Im folgenden Beispiel, wieder 6 durch −5 multiplizierend, haben die zwei Register und das verlängerte Zeichen gebissen werden durch "|" getrennt:

0 0110 (6) (multiplicand mit dem verlängerten Zeichen hat gebissen)

× 1011 (5) (Vermehrer)

= | ==== | ====

0|0110|0000 (zuerst teilweises Produkt (ist niedrigstwertiges Bit 1))

0|0011|0000 (wechseln Recht aus, erweitertes Zeichen-Bit bewahrend)

0|1001|0000 (fügen das zweite teilweise Produkt hinzu (ist folgendes Bit 1))

0|0100|1000 (wechseln Recht aus, erweitertes Zeichen-Bit bewahrend)

0|0100|1000 (fügen das dritte teilweise Produkt hinzu: 0 so keine Änderung)

0|0010|0100 (wechseln Recht aus, erweitertes Zeichen-Bit bewahrend)

1|1100|0100 (ziehen letztes teilweises Produkt ab, da es vom Zeichen ist, hat gebissen)

1|1110|0010 (wechseln Recht aus, erweitertes Zeichen-Bit bewahrend)

|1110|0010 (Ausschuss hat verlängertes Zeichen gebissen, die Endantwort,-30 gebend)

Vergleich (Einrichtung)

Vergleich wird häufig mit einer Scheinsubtraktion durchgeführt, wo die Fahnen im Statusregister des Computers überprüft werden, aber das Hauptergebnis wird ignoriert. Die Nullfahne zeigt an, ob sich zwei Werte gleich verglichen haben. Wenn das exklusive - oder des Zeichens und der Überschwemmungsfahnen 1 ist, war das Subtraktionsergebnis weniger als Null, sonst war das Ergebnis Null oder größer. Diese Kontrollen werden häufig in Computern in bedingten Zweiginstruktionen durchgeführt.

Nicht unterzeichnete Binärzahlen können durch eine einfache lexikografische Einrichtung bestellt werden, wo der Bit-Wert 0 als weniger definiert wird, als das Bit 1 schätzt. Für die Ergänzungswerte von two wird die Bedeutung des bedeutendsten Bit umgekehrt (d. h. 1 ist weniger als 0).

Der folgende Algorithmus (für eine N-Bit-Two'S-Ergänzungsarchitektur) setzt das Ergebnis-Register R auf 1 wenn A

Der umgekehrte Vergleich des Zeichens hat gebissen:

wenn (n-1) == 0 und B (n-1) == 1 dann

R: = +1

Brechung

sonst, wenn (n-1) == 1 und B (n-1) == 0 dann

R: =-1

Brechung

Ende

Vergleich von restlichen Bit:

weil ich = n-2... 0 tun

wenn (i) == 0 und B (i) == 1 dann

R: =-1 Brechung

sonst, wenn (i) == 1 und B (i) == 0 dann

R: = +1 Brechung Ende

Ende

R: = 0

</Code>

Die Ergänzung von Two und universale Algebra

Im klassischen "HAKMEM", der vom Laboratorium von MIT AI 1972 veröffentlicht ist, hat Bill Gosper bemerkt, dass, ob eine innere Darstellung einer Maschine Two's-Ergänzung war, durch das Summieren der aufeinander folgenden Mächte zwei bestimmt werden konnte. In einem Flug der Fantasie hat er bemerkt, dass das Ergebnis, das zu tun, algebraisch angezeigt hat, dass "Algebra auf einer Maschine geführt wird (das Weltall), der Zweien-Ergänzung ist."

Der Endbeschluss von Gosper wird nicht notwendigerweise gemeint, um ernst genommen zu werden, und es ist mit einem mathematischen Witz verwandt. Der kritische Schritt ist"", d. h., "". Das setzt eine Methode voraus, durch die eine unendliche Schnur 1s als eine Zahl betrachtet wird, die eine Erweiterung der begrenzten Konzepte des Platz-Werts in der elementaren Arithmetik verlangt. Es ist entweder als ein Teil einer Two'S-Ergänzungsnotation für alle ganzen Zahlen als eine typische 2-adic Zahl bedeutungsvoll, oder gerade als eine der verallgemeinerten Summen für die auseinander gehende Reihe von reellen Zahlen 1 + 2 + 4 + 8 + definiert hat ···. Arithmetische Digitalstromkreise, idealisiert, um mit dem unendlichen zu funktionieren (sich bis zu positive Mächte 2 ausstreckend), Bit-Schnuren, erzeugen 2-adic Hinzufügung und mit der Ergänzungsdarstellung von two vereinbare Multiplikation. Die Kontinuität von binären arithmetischen und bitwise Operationen im 2-adic metrisch hat auch einen Nutzen in der Geheimschrift.

Potenzielle Zweideutigkeiten der Fachsprache

Man sollte vorsichtig sein, wenn man die Begriff-Two'S-Ergänzung verwendet, weil es entweder ein Zahl-Format oder einen mathematischen Maschinenbediener bedeuten kann. Zum Beispiel 0111 vertritt 7 in der Two'S-Ergänzungsnotation, aber 1001 ist die Ergänzung des two 7, der die Ergänzungsdarstellung des two 7 ist. In der Codenotation oder dem Gespräch wandelt sich die Behauptung "zur Ergänzung von two um" kann zweideutig sein, wie es irgendeinen die Änderung in der Darstellung beschreiben konnte, Notation von einem anderen Format zu two's-ergänzen, oder (wenn der Schriftsteller wirklich "Bekehrten zur Ergänzung seines two" vorgehabt hat), die Berechnung des verneinten Werts dessen.

Siehe auch

  • Abteilung (digital), einschließlich der Wiederherstellung und Nichtwiederherstellung der Abteilung in Two'S-Ergänzungsdarstellungen
  • Unterzeichnete Zahl-Darstellungen
  • P-Adic-Zahlen
  • Die Ergänzung von
  • Gleichen Sie binären aus

Weiterführende Literatur

Links


Galerie nationale du Jeu de Paume / Purpurroter Strandläufer
Impressum & Datenschutz