System.SysUtils.TDoubleHelper
Delphi
TDoubleHelper = record helper for Double
C++
/*Helper*/typedef void *TDoubleHelper;
Inhaltsverzeichnis
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
helper typedef |
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.
Double-Zahlen werden in 64 Bit dargestellt: 1 Bit für Sign, 11 für Exponent und 52 für Fraction. Das Bias ist 1023. Unter Interne Darstellung des Typs Double finden Sie weitere Informationen.
Mit der Methode BuildUp können Sie alle Bits einer TDoubleHelper-Variable mit den in Sign, Mantissa und Exponent angegebenen Werten zuweisen.
Mit den Methoden Exponent, Fraction und Mantissa von TDoubleHelper können Sie auf die einzelnen Teile der Zahl zugreifen.
Hinweis: TDoubleHelper bietet die Unterstützung, die früher TDoubleRec bereitstellte. TDoubleRec ist veraltet; verwenden Sie stattdessen TDoubleHelper.
Beispiel
var
aNumber: Double;
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: 1027 Fraction: C000000000000 Mantissa: 1C000000000000
Die Zahl 28 wird binär als 11100 dargestellt.
Nach der Normalisierung lautet sie 1,1100 * 2^4.
Sign ist 0.
Der Exponent ist 4 und wird mit einfacher Genauigkeit als 1023 (dem Bias) + 4 = 1027 dargestellt. 1027 ist binär 10000000011.
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 52 Bit dargestellt, daher wird die 1100-Folge bis zu 52 Stellen mit Nullen aufgefüllt: 11000000000000000000000000000000000000000000000000000 (hexadezimal: $C000000000000).
Die Mantisse (Mantissa) wird aus Fraction mit dem vorangestellten Bit 1 gebildet: 11100000000000000000000000000000000000000000000000000 ($1C000000000000).
Siehe auch
- System.Double
- System.SysUtils.TSingleHelper
- System.SysUtils.TExtendedHelper
- System.SysUtils.TDoubleHelper.Sign
- System.SysUtils.TDoubleHelper.Frac
- System.SysUtils.TDoubleHelper.Exp
- System.SysUtils.TDoubleHelper.BuildUp
- System.SysUtils.TDoubleHelper.Exponent
- System.SysUtils.TDoubleHelper.Fraction
- System.SysUtils.TDoubleHelper.Mantissa
- System.TDoubleRec