Schwimmpunkt-Format der doppelten Genauigkeit

In der Computerwissenschaft ist doppelte Präzision ein Computerzahl-Format, das zwei angrenzende Speicherelemente im Computergedächtnis besetzt. Eine Zahl der doppelten Genauigkeit, manchmal einfach genannt einen doppelten, kann definiert werden, um eine ganze Zahl, befestigter Punkt zu sein, oder Punkt schwimmen lassend (in welchem Fall es häufig FP64 genannt wird).

Moderne Computer mit 32-Bit-Speicherelementen verwenden zwei Speicherpositionen, um eine 64-Bit-Zahl der doppelten Genauigkeit zu versorgen (ein einzelnes Speicherelement kann eine Zahl der einfachen Präzision halten). Schwimmpunkt der doppelten Genauigkeit ist ein IEEE 754 Standard, um binäre oder dezimale Schwimmpunkt-Zahlen in 64 Bit (8 Bytes) zu verschlüsseln.

IEEE 754 doppelte Genauigkeit binäres Schwimmpunkt-Format: binary64

Doppelte Genauigkeit binärer Schwimmpunkt ist ein allgemein verwendetes Format auf PCs, wegen seiner breiteren Reihe über den Schwimmen-Punkt der einfachen Präzision, trotz seiner Leistung und Bandbreite-Kosten. Als mit dem Schwimmpunkt-Format der einfachen Präzision hat es an Präzision auf Zahlen der ganzen Zahl im Vergleich zu einem Format der ganzen Zahl derselben Größe Mangel. Es ist einfach als doppelt allgemein bekannt. Der IEEE 754 Standard gibt einen binary64 an als, zu haben:

  • Zeichen hat gebissen: 1 Bit
  • Hochzahl-Breite: 11 Bit
  • Präzision von Significand: 53 Bit (52 ausführlich versorgt)

Das gibt von 15 - 17 bedeutende dezimale Ziffer-Präzision (wenn eine dezimale Schnur mit höchstens 15 bedeutender Dezimalzahl zu IEEE 754 doppelte Präzision umgewandelt wird und sich dann zurück zu derselben Zahl der bedeutenden Dezimalzahl umgewandelt hat, dann sollte die Endschnur das Original vergleichen; und wenn ein IEEE 754 doppelte Präzision wird zu einer dezimalen Schnur mit mindestens 17 bedeutender Dezimalzahl umgewandelt und hat sich dann zurück umgewandelt, um sich zu verdoppeln, dann muss die Endzahl das Original vergleichen).

Das Format wird mit dem significand geschrieben ein implizites Bit der ganzen Zahl des Werts 1 zu haben, wenn die schriftliche Hochzahl alle Nullen nicht ist. Mit den 52 Bit des Bruchteils significand, im Speicherformat erscheinend, ist die Gesamtpräzision deshalb 53 Bit (etwa 16 dezimale Ziffern,). Die Bit werden wie folgt angelegt:

Der echte Wert, der durch eine gegebene 64-Bit-doppelte Genauigkeit Daten mit einem gegebenen angenommen ist, hat Hochzahl e beeinflusst

und ein 52-Bit-Bruchteil ist

oder genauer:

Zwischen 2=4,503,599,627,370,496 und 2=9,007,199,254,740,992 sind die wiederpräsentablen Zahlen genau die ganzen Zahlen. Für die folgende Reihe, von 2 bis 2, wird alles mit 2 multipliziert, so sind die wiederpräsentablen Zahlen die gleichen usw. Umgekehrt, für die vorherige Reihe von 2 bis 2, ist der Abstand 0.5, usw.

Der Abstand als ein Bruchteil der Zahlen in der Reihe von 2 bis 2 ist 2.

Der maximale Verhältnisrundungsfehler, wenn er eine Zahl zum nächsten wiederpräsentablen ein (das Maschinenepsilon) rund macht, ist deshalb 2.

Hochzahl-Verschlüsselung

Die doppelte Genauigkeit binäre Schwimmpunkt-Hochzahl wird mit einer mit dem Ausgleich binären Darstellung mit dem Nullausgleich verschlüsselt, der 1023 ist; auch bekannt als Hochzahl beeinflusst im IEEE 754 Standard. Beispiele solcher Darstellungen würden sein:

  • E (1) = 1022
  • E (50) = 973
  • E (2046) = 1023

So, wie definiert, durch die mit dem Ausgleich binäre Darstellung, um die wahre Hochzahl zu bekommen, muss die Hochzahl-Neigung 1023 von der schriftlichen Hochzahl abgezogen werden.

Die Hochzahlen und haben eine spezielle Bedeutung:

  • wird verwendet, um Null (wenn F=0) und subnormals (wenn F0) zu vertreten; und
  • wird verwendet, um Unendlichkeit (wenn F=0) und NaNs (wenn F0), zu vertreten

wo F der Bruchteil mantissa ist. Alle Bit-Muster sind gültige Verschlüsselung.

Hier wird 0x als das Präfix für numerische Konstanten verwendet, die in Hexadecimal gemäß der C Notation vertreten sind.

Abgesehen von den obengenannten Ausnahmen wird die komplette Zahl der doppelten Genauigkeit beschrieben durch:

Beispiele der doppelten Genauigkeit

0x 3ff0 0000 0000 0000 = 1

0x 3ff0 0000 0000 0001  1.0000000000000002, die folgende höhere Zahl> 1

0x 3ff0 0000 0000 0002  1.0000000000000004

0x 4000 0000 0000 0000 = 2

0x c000 0000 0000 0000 =-2

0x 0000 0000 0000 0001 = 2  4.9406564584124654 x 10 (Minute unterdurchschnittlich positiv doppelt)

0x 000f ffff ffff ffff = 2 - 2  2.2250738585072009 x 10 (Max unterdurchschnittlich positiv doppelt)

0x 0010 0000 0000 0000 = 2  2.2250738585072014 x 10 (Minute normal positiv doppelt)

0x 7fef ffff ffff ffff = (1 + (1 - 2)) x 2  1.7976931348623157 x 10 (Max Double)

0x 0000 0000 0000 0000 = 0

0x 8000 0000 0000 0000 =-0

0x 7ff0 0000 0000 0000 = Unendlichkeit

0x fff0 0000 0000 0000 = Infinity

0x 3fd5 5555 5555 5555  1/3

(1/3 rundet statt wie einfache Präzision wegen der ungeraden Zahl von Bit im significand nach unten ab.)

Ausführlicher:

In Anbetracht der hexadecimal Darstellung 0x3fd5 5555 5555 5555,

Zeichen = 0x0

Hochzahl = 0x3fd = 1021

Hochzahl-Neigung = 1023 (unveränderlicher Wert; sieh oben)

Significand = 0x5 5555 5555 5555

Wert = 2 × 1. Significand - Zeichen Significand muss zur Dezimalzahl hier nicht umgewandelt werden

= 2 × (0x15 5555 5555 5555 × 2)

= 2 × 0x15 5555 5555 5555

=

0.333333333333333314829616256247390992939472198486328125

 1/3

Zeichen und Verweisungen

Siehe auch

  • IEEE Standard für die Fließkommaarithmetik (IEEE 754)
  • Verlängerte Präzision (80 Bit)

Steife Aufzeichnungen / Hayden Christensen
Impressum & Datenschutz