Wie IEEE 754 Zahlen Stack-Überlauf subtrahieren

Wirklich nicht anders als Sie es mit Papier und Bleistift. Okay, ein wenig anders

die größere Zahl dominiert, verschieben sich die kleinere Anzahl der Mantisse in den Bit-Eimer aus, bis die Exponenten übereinstimmen







führt dann die Subtraktion mit den Mantissen

Dann normalisiert (was in diesem Fall, es ist)

Das war mit der Basis 10 Zahlen.

In IEEE Schwimmer, mit einfacher Genauigkeit

Vorzeichenbit, Exponenten, Mantisse

Und wenn Sie ein Programm schreiben, um zu sehen, was ein Computer Ding 123400 ist Sie das Gleiche bekommen:

So kennen wir den Exponenten und Mantisse für den ersten Operanden‘

Nun wird der zweite Operand

Der Exponent wird voreingenommen 127 hinzufügen und 139 = 0x8B = 0b10001011

Alles zusammenstecken

Und ein Computerprogramm / Compiler gibt die gleiche

Jetzt ist Ihre Frage zu beantworten. Unter Verwendung der Bestandteile der Gleitkommazahlen, habe ich die implizierte 1 hier wieder, weil wir es brauchen

Jetzt können wir die Mantissen subtrahieren. Wenn die Vorzeichen-Bits entsprechen dann werden wir tatsächlich abziehen, wenn sie übereinstimmen nicht dann fügen wir. Sie passen das wird eine Subtraktion sein.

Computer führen eine Subtraktion durch Addition Logik, wobei der zweite Operator auf dem Weg in den Addierer Invertieren und den Übertrag in Bit, wie diese Behauptung:

Und nun genau wie mit Papier und Bleistift lassen das Add ausführen

oder tun Sie es mit hex auf Ihrem Rechner

Ein wenig darüber, wie die Hardware funktioniert, da dies war wirklich ein subtrahiert die Addierer nutzen wir auch die Durchführung von Bit invertieren (oder auf einigen Computern lassen sie es so ist). So dass Durchführung ein 1 ist eine gute Sache, die wir es im Grunde verwerfen. Wäre es ein Übertrag aus einer Null gewesen wären wir mehr Arbeit nötig haben. Wir haben nicht einen Übertrag haben, so ist unsere Antwort wirklich 0xE66800.







Sehr läßt schnell, dass eine andere Art und Weise sehen, statt Umkehren und das Hinzufügen läßt man nur einen Taschenrechner verwenden

Durch den Versuch, es zu visualisieren, machte ich es vielleicht noch schlimmer. Das Ergebnis des Mantisse Subtrahierens 111001100110100000000000 (0xE66800), gibt es keine Bewegung in dem höchstwertigen Bit wir mit einer 24-Bit-Zahl in diesem Fall mit dem MSBit einer 1. Keine Normalisierung am Ende. Zu normalisieren, müssen Sie die Mantisse nach links oder rechts, bis die 24 Bits einer Linie mit dem höchstwertigen 1, am weitesten links stehende Position verschieben, um die Exponenten für jedes Bit Shift einstellen.

Jetzt Abstreifen des 1. Bit von der Antwort, die wir die Teile zusammen

Wenn Sie mit dem Schreiben eines Programms folgende zusammen haben, dies zu tun, habe ich auch. Dieses Programm verstößt gegen den C-Standard durch eine Vereinigung in unzulässiger Weise verwenden. Ich habe mit ihm mit meinem Compiler auf meinem Computer entfernt, nicht erwarten, dass es die ganze Zeit zu arbeiten.

Und unser Ergebnis passt die Ausgabe des obigen Programms, wir haben zu tun ein 0x47E66800 es von Hand

Wenn Sie ein Programm schreiben, das Floating-Point-Mathematik zu synthetisieren Ihr Programm die subtrahieren durchführen können, müssen Sie nicht die Invert zu tun und fügen plus eine Sache verkompliziert es über, wie wir oben gesehen haben. Wenn Sie ein negatives Ergebnis erhalten, obwohl Sie mit dem Vorzeichenbit spielen müssen, kehren Sie Ihr Ergebnis, dann normalisieren.

1) Extrahieren der Teile, Vorzeichen, Exponent, Mantisse.

3) eine Subtrahierenoperation wenn die Vorzeichenbits gleich sind, dann führen Sie ein subtrahieren, wenn die Vorzeichenbits unterschiedlich sind Sie führen einen Zusatz der Mantissen.

4), wenn das Ergebnis eine Null ist, dann Ihre Antwort ist eine Null, codiert den IEEE-Wert für Null als Ergebnis, sonst:

6) für einfache Genauigkeit entfernen Sie den führenden 1. von den Mantisse, wenn der Exponent dann bekommt man überschwemmt hat in dem Aufbau eine Signalisierungs nan. Wenn die Vorzeichen-Bits unterschiedlich waren und Sie ein Add durchgeführt wird, dann müssen Sie mit, herauszufinden, das Ergebnis Vorzeichenbit beschäftigen. Wenn, wie oben alles in Ordnung legen Sie nur das Vorzeichenbit, Exponent und Mantisse im Ergebnis

Multiplizieren und dividieren ist anders, fragte Sie subract, so dass alles, was ich bedeckt.







In Verbindung stehende Artikel