Im vorherigen
Thema haben wir ein neues Format fĂŒr die Darstellung von Dezimal-Gleitkommazahlen betrachtet, das wir als gemischtes Dezimal-BinĂ€r-Format (SDDF) bezeichnet haben.
Mit diesem Format können Sie arithmetische Berechnungen auf einem Computer durchfĂŒhren, ohne BCD mit der gleichen Genauigkeit zu verwenden, als ob die Berechnungen manuell durchgefĂŒhrt wĂŒrden.
Denken Sie daran, dass ein gemischtes Dezimal-BinĂ€r-Format (SDDF) ein BinĂ€rcode-Darstellungsformat fĂŒr Dezimal-Gleitkommazahlen ist, bei dem die ganzzahlige Mantisse das binĂ€re Ăquivalent ihres Dezimalwerts ist und der Exponent das binĂ€re Ăquivalent der Potenz von 10 ist. Die reelle Zahl in SDF wird als dargestellt
wo
und e sind binĂ€re ganze Zahlen. Das binĂ€re Ăquivalent einer Dezimalzahl ist der BinĂ€rcode dieser Dezimalzahl im ausgewĂ€hlten Format. Das DezimalĂ€quivalent einer BinĂ€rzahl ist der Dezimalcode dieser BinĂ€rzahl.
Vergleichen wir die grundlegenden Eigenschaften von Gleitkommazahlen, die im IEEE754-Standard und in SDDF dargestellt sind. Betrachten Sie der Einfachheit halber ein 16-Bit-Maschinenwort. Dies ist das sogenannte Format mit
halber Genauigkeit . Die Vergleichsergebnisse können leicht auf den Fall eines Austauschformats mit einfacher und doppelter Genauigkeit skaliert werden.
Wir teilen das 16-Bit-BinĂ€rwort in die folgenden Felder ein: S, e, m. Wo ist die S-Ziffer des Vorzeichens der Zahl, e - 5 Bits des verschobenen Exponenten, m - 10 Bits des binĂ€ren Ăquivalents der Dezimalmantisse der Zahl. Der maximale BinĂ€rwert des im 5-Bit-Register aufgezeichneten Offset-Exponenten ist gleich emax = 11111 oder in Dezimalform emax = 31. Der Offset betrĂ€gt in diesem Fall 15.
Also
1 . Die gepackte Zahlenmantisse in IEEE754 enthÀlt den Bruchteil der Zahlenmantisse.
Die Mantissenzahl in SDDF ist eine binÀre Ganzzahl.2 . Die normalisierte IEEE-Mantisse in der entpackten Form sieht aus wie 1.xxxxxxxxxx. Wobei x eine beliebige BinÀrziffer ist.
Da die Mantisse normalisiert ist, ist ihr ganzer Teil in entpackter Form immer gleich 1. Dieses GerĂ€t kann nicht im Speicher der Maschine gespeichert werden. In der entpackten Form hat die Mantisse unter BerĂŒcksichtigung der virtuellen Einheit 11 Bits.
Die normalisierte Mantisse in der SDDF ist eine binĂ€re Ganzzahl, die dem Ăquivalent der Dezimalzahl entspricht, die in unserem Fall durch drei Ziffern dargestellt wird: UXX. Dabei ist U eine Dezimalstelle ungleich Null. X ist eine beliebige Dezimalstelle.
Eine maximale Dezimalzahl von 1023 kann in 10 Bits der Mantisse dargestellt werden. Es kann garantiert werden, dass alle ganzen Zahlen unter 1023 durch 10 Bits dargestellt werden. Daher können alle Dezimalzahlen mit Mantisse †999 durch 10 Bits der Mantisse genau dargestellt werden.3 . In IEEE754 betrÀgt die maximal normalisierte binÀre Mantisse Mmax = 1,1111111111 = 1,9990234375
Die garantierte Anzahl gĂŒltiger Ziffern, die durch eine binĂ€re 11-Bit-Mantisse dargestellt werden können,
betrÀgt 3 .
Die maximale normalisierte Dezimalmantisse in SDDF betrÀgt Mmax = 999 oder binÀr Mmax = 1 111 100 111. Das DezimalÀquivalent der Mantisse besteht aus 3 Dezimalstellen. Daher wird die dreistellige Mantisse in unserem Beispiel in SDDF 3 in signifikanten Dezimalstellen genau dargestellt.4 . In IEEE754 betrÀgt der minimale normalisierte Mantissenwert mit emin = 0: Mmin = 1,0
Die minimale normalisierte Mantisse in SDDF bei emin = 0 ist gleich der Dezimalzahl Mmin = 100. Oder in binÀrer Form Mmin = 0001100100.5 . Die maximale positive Dezimalzahl, die im IEEE754-Format mit einem voreingenommenen Exponenten geschrieben werden kann, ist
Fmax = 2 ^ emax * Mmax = 2 ^ 31 * 1,9990234375 = 4292870144 = 4,292870144 * 10 ^ 9. In der Norm ist die maximale Anzahl jedoch die Zahl Fmax = 2 ^ emax = 2 ^ 31 = 4294967296 = 4,294967296 * 10 ^ 8. Zahlen> 2 ^ 31 gelten als gleich plus unendlich.
Die maximale positive Dezimalzahl, die mit einem voreingenommenen Exponenten genau im SDDF-Format geschrieben werden kann, ist
Fmax = 10 ^ emax * Mmax = 10 ^ 31 * 999 = 9,99 * 10 ^ 336 . Der Bereich der ungefÀhren normalisierten Zahlen, die im IEEE-Format dargestellt werden können, ist
Fmax / Fmin = 2 ^ 31 = 4294967296 = 4,294967296 * 10 ^ 8
Der Bereich der exakten Zahlen, die im SDDF-Format dargestellt werden können, ist gleich
Fmax / Fmin = 9,99 * 10 ^ 317 . Der Schritt zum Ăndern der BinĂ€rzahl in IEEE mit einem Offset-Exponenten (emin = 0) ist:
h = 0,0000000001 = 2 ^ -10 = 0,0009765625
Der Schritt zum Ăndern der Dezimalzahl in der SDDF mit einem verschobenen Exponenten (emin = 0) ist:
h = 00001100100 = 1008 . In IEEE754 sind mit einem vorgespannten Exponenten, wenn e = 0 ist, alle Zahlen, die <1,0 sind, subnormal. Je kleiner die subnormale Zahl ist, desto weniger genau wird das DezimalÀquivalent dargestellt. Spezielle Algorithmen sind erforderlich, um subnormale Zahlen in ein Austauschformat zu codieren, aus einem Austauschformat zu decodieren, sowie spezielle Traps, um subnormale Zahlen wÀhrend arithmetischer Operationen zu bestimmen.
In SDDF gibt es keine subnormalen Zahlen. Alle Zahlen werden mit einer Genauigkeit von bis zu 3 signifikanten Stellen dargestellt.9 . Bei einem unverzerrten Exponenten betrÀgt die maximal normalisierte positive Dezimalzahl, die im IEEE754-Format geschrieben werden kann
Fmax = 2 ^ emax * Mmax = 2 ^ 15 * 1,9990234375 = 65504. Im Standard ist die maximale Anzahl jedoch die Zahl Fmax = 2 ^ emax = 2 ^ 15 = 32768. Zahlen> 32768 werden als gleich plus unendlich betrachtet.
Bei einem unverzerrten Exponenten ist die maximale positive Dezimalzahl, die in die SDDF geschrieben werden kann, gleich
Fmax = 10 ^ emax * Mmax = 999 * 10 ^ 15 = 9,99 * 10 ^ 1710 . Bei einem unverzerrten Exponenten betrÀgt die minimale normalisierte positive Dezimalzahl im IEEE754-Format Fmin = 1,0 * 2 ^ -15 =
3,0517578125 * 10 ^ -5.
Bei einem unverzerrten Exponenten betrÀgt die minimale normalisierte positive Dezimalzahl, die im SDDF-Format geschrieben werden kann, Fmin = 100 * 10 ^ -15 = 10 ^ -1311 . Bei einem unverzerrten Exponenten betrÀgt der minimale binÀre Àquivalente Dezimalschritt in IEEE:
h = 0,0000000001 * 2 ^ -15 = 2 ^ -25 = 3,0517578125 * 10 ^ -5
Bei einem unverzerrten Exponenten stimmt der minimale Schritt in der SDDF mit der minimalen Anzahl ĂŒberein und ist gleich:
h = 001100100 * 10 ^ -15 = 10 ^ -1312 . In IEEE754 ist die Funktion der AbhĂ€ngigkeit des Wertes des DezimalĂ€quivalents der Zahl Fd von ihrem BinĂ€rwert nicht einheitlich, weil Um die niedrigstwertige Ziffer der Dezimalmantisse der Zahl um 1 zu Ă€ndern, ist in der Regel die Summe von mehreren h gleich der Maschine Æ erforderlich.
Wenn zum Beispiel e = 0 ist, haben wir fĂŒr Fd1 = 1.0 = 1.0000000000 und Fd2 = 1.1â1.0001100110
Fd2-Fd1 = 1.0001100110 -1.0000000000 = 0.0001100110 = 0.099609375
0,0001100110 / h = 0,0001100110 / 0,0000000001 = 1100110 = 102 = Æ
In SDDF ist die Funktion der AbhĂ€ngigkeit des Wertes des DezimalĂ€quivalents der Zahl Fd von ihrem BinĂ€rwert einheitlich. Jede Ănderung von h des binĂ€ren Ăquivalents der Mantisse der Dezimalzahl fĂŒhrt zu einer Ănderung des 1 niedrigstwertigen Bits des DezimalĂ€quivalents der Zahl. Hier Maschine Æ = 1. Wirklich.
Wenn e = 0,
Fd1 = 100 = 0001100100
Fd2 = 200 = 0011001000
Fd2-Fd1 = 0011001000-0001100100 = 0001100100 = 100 = hAbschlieĂend prĂ€sentieren wir die Hauptmerkmale der Darstellung von reellen Zahlen im IEEE754-Standard und im SDDF fĂŒr das Austauschformat, das aus 32 Bit besteht (einfache Genauigkeit im IEEE754-Standard).
FĂŒr IEEE754 werden Maschinenwortbits mit einfacher Genauigkeit als S - 1 Bit des Vorzeichencodes, e - 8 Bits des vorgespannten Exponenten, m - 23 explizite Mantissenbits zugewiesen. Ausgepackt, m = 24.
FĂŒr IEEE754:Der exponentielle Verschiebungskoeffizient betrĂ€gt 127 emax = 127. Die unverzerrte Ordnung der kleinsten normalisierten Zahl mit M = 1,0 ist p = e-127 + 1 = -126. Zahlen <2 ^ -126 gelten als subnormal.
Die minimale normalisierte Zahl ist Fmin = 1,0 * 2 ^ -126 = 1,1754943508222875079687365372222e-38
Die maximal normalisierte Anzahl
Fmax = 2 ^ 127 = 1,7014118346046923173168730371588e + 38
Zahlen, die 2 ^ 127 ĂŒberschreiten, gelten als positive Unendlichkeit.
FĂŒr SDDF werden die Ziffern des Maschinenworts wie folgt verteilt: S - 1 Ziffer, e - 7 Bits, m - 24 Bits. Der exponentielle Verschiebungskoeffizient betrĂ€gt 63. Dann
emax = 64
Mmax = 9999999
Fmax = 9999999 * 10 ^ 64 = 9,999999 * 10 ^ 70
Fmin = 1.000.000 * 10 ^ -63 = 10 ^ -57
Die Genauigkeit der Darstellung von reellen Dezimalzahlen betrÀgt 7 signifikante Dezimalstellen.