IEEE 754-Grundlagen
Der Gleitkommastandard IEEE 754 organisiert Zahlen im folgenden Format:
Subnormale Zahlen
Ingenieure haben subnormale Zahlen implementiert, um ein Problem zu beheben. Alle Zahlen außer 0,0 haben in der Binärdarstellung eine führende 1. Um bei diesem führenden Bit keine Präzision zu verschwenden, haben sie die „führende Bitkonvention“ erstellt.
Dadurch würde jedoch die kleinste Zahl ungleich Null größer als im vorherigen Standard werden. Ingenieure haben ausnahmsweise subnormale Zahlen eingeführt, bei denen:
Dies ermöglicht die Darstellung von Zahlen, die kleiner als die kleinste nicht-subnormale Zahl sind Wert.
Subnormale Zahlen-Kompromiss
Subnormale Zahlen stellen einen Kompromiss zwischen Präzision und Darstellungslänge dar. Kleinere Zahlen haben eine verringerte Genauigkeit, aber die Anzahl der dargestellten Werte wird verdoppelt.
Visualisierung
Geometrisch gesehen erweitern Subnormalen den Bereich des Exponenten 0 und verdoppeln den verfügbaren Platz für Zahlen und Reduzieren des Abstands innerhalb dieses Bereichs.
Implementierung Subnormale
C float repräsentiert 32-Bit-IEEE 754-Zahlen auf den meisten Desktop-Computern. Ein Beispiel-C-Programm demonstriert die Eigenschaften subnormaler Zahlen:
#include <assert.h> #include <inttypes.h> #include <math.h> #include <stdlib.h> #include <stdio.h> typedef struct {...} Float32; // Represents the 32-bit floating point float float_from_bytes(..., uint32_t fraction); // Reconstructs float from individual parts bool float32_equal(float f, uint32_t sign, uint32_t exponent, uint32_t fraction); // Compares float to individual parts int main() { assert(float32_equal(0.5f, 0, 126, 0)); assert(isnormal(0.5f)); ... // More assertions return EXIT_SUCCESS; }
Subnormale in Implementierungen
Subnormale können auf einigen Plattformen weniger effizient implementiert werden. ARMv8 bietet einen „Flush-to-Zero“-Modus, in dem Subnormalwerte zur Leistungsoptimierung auf Null gerundet werden.
Denormal vs. Subnormal
Subnormal und Denormal sind synonyme Synonyme auf die gleiche Art von Nummern.
Andere Sonderangebote Fälle
Das obige ist der detaillierte Inhalt vonWarum sind subnormale Zahlen ein Kompromiss zwischen Präzision und Darstellungslänge?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!