Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: TObject und negativer Int64

  Alt 19. Feb 2021, 20:05
Klar, man kann über Integer als Zwischenschritt casten, dann sind im Nagetiven 2 Millarden Werte verfügbar, aber dafür geht es im Positiven nun statt bis 4 nur noch bis 2 Milliarden, von den paar Trilliarden des Int64.
Wenn du mal nachsiehts, was mit den Bits im Zweierkomplement los ist, dann weißt du auch warum.


Fazit: Mach es richtig.

Es soll ein Object sein, also nimm auch ein Daten-Objekt und pack den Wert dort rein.

Delphi-Quellcode:
type
  TMyData = class
    Value: Int64;
    constructor Create(Value: Int64);
  end;


procedure TForm1.Button3Click(Sender: TObject);
var myObj:TObject;
    negNumber: Int64;
begin
  negNumber := -1;
  myObj := TMyData.Create(negNumber);
  showmessage(TMyData(myObj).Value.ToString);

  // irgendwo nicht vergessen
  myObj.Free;
end;







Oder das Programm in 64 Bit compilieren.
$2B or not $2B

Geändert von himitsu (19. Feb 2021 um 20:33 Uhr)
  Mit Zitat antworten Zitat