System.SysUtils.TSingleHelper
Delphi
TSingleHelper = record helper for Single
C++
struct TSingleHelper /* Helper for real 'float' */;
Inhaltsverzeichnis
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
helper class |
public | System.SysUtils.pas System.SysUtils.hpp |
System.SysUtils | System.SysUtils |
Beschreibung
Stellt die Unterstützung für die Durchführung von Low-Level-Operationen mit Gleitkommawerten mit einfacher Genauigkeit bereit.
Single-Zahlen werden in 32 Bit dargestellt: 1 Bit für Sign, 8 für Exponent, und 23 für Fraction. Das Bias ist 127. Unter Interne Darstellung des Typs Single finden Sie weitere Informationen.
Mit der Methode BuildUp können Sie alle Bits einer TSingleHelper-Variable mit den in Sign, Mantissa und Exponent angegebenen Werten zuweisen.
Mit den Methoden Exponent, Fraction und Mantissa von TSingleHelper können Sie auf die einzelnen Teile der Zahl zugreifen.
Hinweis: TSingleHelper bietet die Unterstützung, die früher TSingleRec bereitstellte. TSingleRec ist veraltet; verwenden Sie stattdessen TSingleHelper.
Beispiel
var
aNumber: Single;
begin
aNumber := 28;
Writeln(Format('Number: %f', [aNumber]));
Writeln(Format('Exponent: %d', [aNumber.Exp]));
Writeln(Format('Fraction: %x', [aNumber.Frac]));
Writeln(Format('Mantissa: %x', [aNumber.Mantissa]));
end;
Konsolenausgabe:
Number: 28.00 Exponent: 131 Fraction: 600000 Mantissa: E00000
Die Zahl 28 wird binär als 11100 dargestellt.
Nach der Normalisierung lautet sie 1,1100 * 2^4.
Die Zahl ist positiv, daher ist Sign 0 (False).
Der Exponent ist 4 und wird mit einfacher Genauigkeit als 127 (dem Bias) + 4 = 131 dargestellt. 131 ist binär 10000011 (hexadezimal: $83).
Fraction wird in binärer Form aus den Bits nach dem Dezimalzeichen gebildet, nämlich 1100, d. h., der Wert 1 des führenden Bits wird weggelassen. Fraction wird mit 23 Bit dargestellt, daher wird die 1100-Folge bis zu 23 Stellen mit Nullen aufgefüllt:
11000000000000000000000 (hexadezimal: $600000).
Die Mantisse (Mantissa) wird aus Fraction mit dem vorangestellten Bit 1 gebildet: 111000000000000000000000 ($E00000).
Siehe auch
- System.Single
- System.SysUtils.TDoubleHelper
- System.SysUtils.TExtendedHelper
- System.SysUtils.TSingleHelper.Sign
- System.SysUtils.TSingleHelper.Frac
- System.SysUtils.TSingleHelper.Exp
- System.SysUtils.TSingleHelper.BuildUp
- System.SysUtils.TSingleHelper.Exponent
- System.SysUtils.TSingleHelper.Fraction
- System.SysUtils.TSingleHelper.Mantissa
- System.TSingleRec