Das alles gibt das gleiche Ergebnis, und alles ohne Warnung:
Code: Alles auswählen
const
u1: uint64 = uint64($FFFFFFFFFFFFFFFF);
u2: uint64 = uint64(-1);
begin
WriteLn(u1);
WriteLn(u2);
WriteLn(high(QWord));
WriteLn(high(UInt64));
end.
Code: Alles auswählen
const
u1: uint64 = uint64($FFFFFFFFFFFFFFFF);
u2: uint64 = uint64(-1);
begin
WriteLn(u1);
WriteLn(u2);
WriteLn(high(QWord));
WriteLn(high(UInt64));
end.
Pascal Compiler arbeiten standardmäßig mit vorzeichenbehafteten Typen, das heißt auf 64-Bit finden Berechnungen mit Int64 statt, deswegen kannst du auch $FFFFFFFFFFFFFFFF nicht an einen UInt64 zuweisen, da du effektiv -1 an einen vorzeichenlosen Typen zuweist. Das heißt hier eine Typumwandlung zu verwenden ist die korrekte Lösung.Vamogu05 hat geschrieben: Mi 15. Okt 2025, 15:09 Mit einem Typecast funktioniert es:
Test: UInt64 = UInt64($FFFFFFFFFFFFFFFF);
Gut, dann werde ich alle Einträge casten. Das sollte mit suchen/ersetzen machbar sein.