Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.524 Beiträge
 
Delphi 7 Professional
 
#3

AW: IntToStr bereitet Probleme beim umstieg auf Delphi 12

  Alt 10. Jan 2025, 11:45
Nur 'ne Vermutung?

Was ergibt $FFFFFFFFFFFFFFFF als Dezimalzahl?
Was ergibt $FFFFFFFFFFFFFFF als Dezimalzahl?

Welchen Dezimalzahlbereich deckt Integer unter 32 Bit ab?

7FFFFFFF (hex) = 2.147.483.647 (dezimal)
80000000 (hex) = -2.147.483.648 (dezimal)

Damit dürften die verwendeten Werte für 32-Bit deutlich zu hoch sein.

Für 64-Bit sind diese Werte

Maximalwert: 7FFFFFFFFFFFFFFF (hex) = 9.223.372.036.854.775.807
Minimalwert: 8000000000000000 (hex) = -9.223.372.036.854.775.808

Demnach sind $FFFFFFFFFFFFFFFF einfach $8000000000000000 zuviel,
in Dezimal entspricht das 92.233.720.368.54.775.808, das ist schon eine ziemlich große Menge (Faktor 10)

Letztlich liegt $FFFFFFFFFFFFFFFF schlicht und einfach außerhalb des für Integer gültigen Bereiches und damit ist die Fehlermeldung "Fehler bei der Bereichsprüfung" absolut korrekt.
  Mit Zitat antworten Zitat