Thema: Delphi 2x Cardinal => 1x int64

Einzelnen Beitrag anzeigen

Benutzerbild von Weazy
Weazy

Registriert seit: 7. Apr 2005
Ort: Bern (Schweiz)
414 Beiträge
 
Delphi 2007 Enterprise
 
#1

2x Cardinal => 1x int64

  Alt 8. Jun 2009, 02:26
Hallo, ich habe zwei Cardinal Werte welche zu einem int64 verschmelzen sollen. Der eine Cardinal enthält die ersten 32 Bits, der andere Cardinal die unteren 32 Bits des int64. Hier mal ein erster Versuch:

Delphi-Quellcode:
function CardToInt64(const high,low:cardinal):int64;
begin
  Result:=0; //mit 0 auffüllen
  Result:=high shl 32; //obere 4 Bytes setzten
  Result:=Result or low; // untere 4 Bytes setzten
end;
Leider scheint das verschieben mit shl nicht so ganz zu funktionieren, laut hilfe soll das nur für 32 bit integers funktionieren, wie könnte ich das hinbekommen? Die eignetliche Frage ist eigentlich nur wie ich "high" in der oberen Bereich des Resultats bekomme und ob es ev eine bessere Methode gibt?!?
Philippe Wechsler
  Mit Zitat antworten Zitat