Nein, +0
und -0
werden nicht bei jeder Berechnung gleich verwendet. Zum Beispiel:
Ich empfehle Ihnen, Was jeder Informatiker über Fließkomma-Arithmetik wissen sollte David Goldberg, das beleuchtet, warum +0 und -0 in der Fließkommaarithmetik benötigt werden und auf welche Weise sie sich unterscheiden.
Beispiele dafür, wie sich +0
ad -0
unterscheiden (und warum das nützlich sein kann, wenn es um komplexe Werte geht), finden Sie in Kahan, W. 1987. Zweigstellen für komplexe Elementarfunktionen, in "Der Staat der Art in Numerical Analysis "(Ich konnte keine pdf-Datei zu diesem Artikel finden, Sie finden sie möglicherweise in Ihrer lokalen Universitätsbibliothek).
Die Wikipedia-Seite Signed Zero beantwortet die meisten dieser Fragen:
Signed zero ist Null mit einem zugeordneten Schild. In gewöhnlicher Arithmetik ist -0 = 0. In der Computertechnik jedoch eine gewisse Anzahl Darstellungen erlauben das Existenz von zwei Nullen, oft bezeichnet durch -0 (negative Null) und +0 (positive Null). Dies geschieht in einigen signierten Zahlendarstellungen für Ganzzahlen, und in der meisten Fließkommazahl Darstellungen. Die Nummer 0 ist normalerweise als +0 kodiert, kann es aber durch entweder +0 oder -0 dargestellt werden.
Der IEEE 754-Standard für Floating Punktarithmetik (zur Zeit von die meisten Computer und Programmierung Sprachen, die Gleitkomma unterstützen Zahlen) erfordert sowohl +0 als auch -0. Das Nullen können als eine Variante betrachtet werden der erweiterten reellen Zahlenzeile, z dass 1 / -0 = -∞ und 1 / + 0 = + ∞, Division bei Null ist nur undefiniert für ± 0 / ± 0.
(...)
Es wird behauptet, dass die Einbeziehung von signed zero in IEEE 754 macht es sehr einfacher, numerische Genauigkeit zu erreichen in einigen kritischen Problemen, in insbesondere bei komplexen Berechnungen elementare Funktionen.
Tags und Links c++ floating-point