Thema: Delphi 2x Cardinal => 1x int64

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: 2x Cardinal => 1x int64

  Alt 17. Aug 2009, 20:24
mir ist grad in einem Projekt etwas eigenartiges aufgefallen und ich konnte es jetzt auf 2 PCs genauso nachvollziehen.

Delphi-Quellcode:
var i, j: Integer;
  k: Int64;
begin
  i := 123;
  j := 456;
  k := (i shl 32) or j;
eigentlich müßte hier ja i3 = 456 sein, da wie Neutral General in Beitrag #3 schon richtig erklärte, der Wert von i aus dem Wertebereich rausverschoben werden sollte, ABER

ich bekomme 507 raus, also quasi
k := i or j; laut Debugger stimmt dieses tatsächlich, da der Wert von i, trotz erfolgreich ausgeführtem SHL-Befehl, im entsprechendem Register garnicht verändert wird.


[add] ach ja, hab hier einen kleinen Athlon64 drinnen
und ein WinXP SP3 mit 32 Bit
$2B or not $2B
  Mit Zitat antworten Zitat