Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: GetTickCount / Fehler bei Bereichsprüfung

  Alt 15. Jan 2014, 16:06
Bei dem expliziten Integer-Cast wird der binäre Wert in der Variable nicht verändert.

Man stellt da nur vor der Zuweisung die Interpretierung des höchsten Bits um, womit dann die Wertebereiche zusammen passen.

Stell dir es so vor:
Delphi erkennt, daß die beiden Typen nicht zusammen passen und macht intern aus deinem

MyInteger := MyCardinal;

ein

Delphi-Quellcode:
TempInt64 := MyCardinal;
if (TempInt64 < Low(MyInteger)) or (TempInt64 > High(MyInteger)) then
  raise exception....;
MyInteger := Integer(TempInt64);
MyInteger := Integer(MyCardinal); tut jetzt so, als seien die 4 Byte in MyCardinal schon ein Integer, womit das gleich da rein passt.
$2B or not $2B
  Mit Zitat antworten Zitat