/ / Wie funktioniert das Konvertieren in Doppelarbeit? - c, Fließkomma, doppelt, ieee-754, single-precision

Wie funktioniert das Konvertieren in Doppelarbeit? - c, Fließkomma, doppelt, ieee-754, single-precision

double kann jeden Wert darstellen, den ein float darstellen kann.

Konvertiert Float zu Double einfach die Mantisse durch Addition von 0 und Erweitern des Exponenten durch Füllen von Vorzeichenbits?

Ich habe einige Daten getestet http://www.binaryconvert.com/index.html. Es funktioniert auf diese Weise. Aber ich habe keine offizielle Definition der Konvertierung gefunden. Hat die Konvertierung irgendwelche Ecken, die nicht so funktionieren?

Antworten:

6 für die Antwort № 1

Das hat sehr wenig mit C zu tun; Die einzige Garantie ist die Umwandlung von float zu double muss den Wert erhalten.

Also fragst du wirklich nach (vermutlich) IEEE-754. Es gibt mindestens einige Möglichkeiten, auf die Ihre Beschreibung nicht zutrifft:

  1. Die Exponenten für Einzelpräzision und Doppelpräzision haben unterschiedliche Vorurteile. Die Konvertierung erfordert also mehr als nur die Zeichenerweiterung.

  2. Denormale Zahlen erfordern eine besondere Behandlung (sie werden zu normalen Zahlen).

  3. NaNs können auch eine besondere Behandlung erfordern - die Unterscheidung zwischen Signal- und stillen NaNs hängt vom Wert der Mantisse ab.