Ein Int64 zu einen Double konvertieren?

Ave Mitglieder,
ich versuche schon lange auf irgendeine Weise es zustande zu bekommen
8 Byte aus einer Datei gelesenen und den Wert dahinter in einen in einen Double-Type zu quetschen. Zu meinen Bedauern klappte bis jetzt nur Double zu Int64. Ich will dabei nicht auf TFileStream zugreifen. Wenn jemand einen Lösungsweg für meine mörderische Aufgabe kennt, antworte möglichst schnell, bevor ich selber noch rausbekomme.

Noch mal genauer:
Int64 benötigt 64 Bit, wie der Name schon sagt, genauso wie Double(Bit 1: Vorzeichen; Bits 2-12: Exponent; Bits 13-64: Mantisse; falls es weiterhilft). Die 64 Bit von Int64 sollen zu den 64 Bit von Double werden.

Hallo,

Int64 benötigt 64 Bit, wie der Name schon sagt, genauso wie
Double(Bit 1: Vorzeichen; Bits 2-12: Exponent; Bits 13-64:
Mantisse; falls es weiterhilft). Die 64 Bit von Int64 sollen
zu den 64 Bit von Double werden.

deklarier einen Pointer vom Typ Double und eine Variable vom Typ Int64. Dann weist du dem Pointer die Adresse der Variablen zu. Nach dem Einlesen des Int64 kannst du dann via Pointer auf den Wert als Double zugreifen:

var
 MyInt: Int64;
 pMyDouble: ^Double;
 MyDouble : Double;

begin
 MyInt = HolDenWertAusDatei;
 pMyDouble := @MyInt;
 MyDouble := pMyDouble^;
end;

So sollte es ungefähr gehen. Habe gerade kein Delphi zur Verfügung. Kanns deswegen nicht testen.

Gruss, Niels