2016-04-09 12 views
0

Ich möchte wissen, wie IEEE 754-Nummern subtrahieren, also habe ich darüber gesucht und diese Antwort gefunden: How to subtract IEEE 754 numbers?, und es funktioniert gut mit allen Beispielen, die ich versucht habe, außer wenn ich eins subtrahieren, haben die Nummer 1 eine Menge 0 ist in der Mantisse, also sollte nach dieser Logik eine Zahl gleich bleiben, wenn ich ihr 1 subtrahiere?Wie kann ich IEEE 754-Nummern subtrahieren?

PS: Es wäre das gleiche für jede Zahl - 2^etwas, die Mantisse wäre voller Nullen.

Jemand erklären pls

Antwort

1

Wenn eine IEEE 754-Nummer gespeichert ist, verwendet es eine sehr speichereffiziente Methode.

Alle Zahlen mit Ausnahme sehr sehr kleine (sogenannte de-normalisierten Zahlen) in der Form geschrieben werden:

sign * 1.mmmmmmmmmmmmmmmmm * 2^eeeee 

Wenn sie gespeichert sind, werden nur die seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm Bits tatsächlich gespeichert sind.

Beim Speichern 1.0000000 sind die mmmmmmm Bits alle Null, und die führende 1. wird nicht gespeichert, da das redundant wäre. Daher ist die Mantisse in den gespeicherten Bits nur Nullen. Der mathematische Wert der Mantisse ist jedoch:

mantissa = 1 + 0.mmmmmmm 

Eigentlich ist der Exponent auch ein wenig anders gelagert, sowohl für positive als auch negative Exponenten zu ermöglichen. Aber das ist außerhalb des Rahmens dieser Frage.

Weitere Informationen finden Sie unter Wikipedia article on this subject.