Heim > Backend-Entwicklung > C++ > Hauptteil

Warum haben wir subnormale Gleitkommazahlen?

DDD
Freigeben: 2024-11-11 07:42:03
Original
258 Leute haben es durchsucht

Why Do We Have Subnormal Floating Point Numbers?

Subnormale Gleitkommazahlen

Gleitkommazahlen sind gemäß dem IEEE 754-Standard organisiert. Bei einfacher Genauigkeit besteht das Format aus 1 Bit für das Vorzeichen, 8 Bits für den Exponenten und 23 Bits für den Bruch. Der Exponent ist um -127 voreingenommen, daher steht 0 für 2^-126 und 1 für 2^-125.

Die „Konvention für führende Bits“ geht davon aus, dass jede Zahl außer 0,0 mit einer 1 im Binärformat beginnt. Dadurch wird vermieden, dass ein Präzisionsbit für die führende Ziffer verschwendet wird. Es wird jedoch eine Ausnahme für 0,0 erstellt, bei der sowohl Exponenten- als auch Bruchbits gleich 0 sind.

Daher ist die kleinste darstellbare Zahl ungleich Null 1,0 × 2^-126. Um noch kleinere Zahlen darzustellen, haben Ingenieure subnormale Zahlen eingeführt, die ein führendes Bit von 0 und einen festen Exponenten von -126 haben.

Die größte subnormale Zahl ist 0,FFFFFE × 2^-126, was sehr nahe kommt auf die kleinste nicht-subnormale Zahl. Die kleinste subnormale Zahl ungleich Null ist 0,000002 × 2^-126, was sogar noch näher an 0,0 liegt.

Subnormale Zahlen sind ein Kompromiss zwischen Präzision und Darstellungslänge. Beispielsweise hat die kleinste Subnormalzahl ungleich Null eine Genauigkeit von nur 1 Bit, sodass eine Division durch 2 genau 0,0 ergibt.

In einer Visualisierung verdoppeln Subnormalzahlen die Länge des Exponenten-0-Bereichs und halbieren die Anzahl der Punkte in diesem Bereich im Vergleich zu einem System ohne Subnormale. Dies führt zu einigen Lücken im darstellbaren Zahlenraum.

In C stellt der Datentyp „float“ IEEE 754-Gleitkommazahlen mit einfacher Genauigkeit dar. Subnormale Zahlen können mit der Funktion isnormal() identifiziert werden, die für subnormale Zahlen false und für normale Zahlen true zurückgibt.

Das obige ist der detaillierte Inhalt vonWarum haben wir subnormale Gleitkommazahlen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage