Registriert seit: 22. Feb 2017
1.002 Beiträge
|
AW: Überlauf bei int64
25. Feb 2025, 08:54
Der Ausdruck wird zuerst als Integer ausgewertet und erst dann zugewiesen. Du musst mindestens einen der Summanden als Int64 typecasten (oder gleich also solchen deklarieren), dann wird es funktionieren:
Delphi-Quellcode:
Result:=Int64(i1) * 16777246 +
i2 * 65536 +
i3 * 256 +
i4;
Dank dir. So geht's.
16777216 ist natürlich korrekt.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
|