Thema: Delphi Rechenaufgabe

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: Rechenaufgabe

  Alt 17. Jul 2006, 13:13
@Amateurprofi: was ich schrieb, war der Pascal-Code und du hattest ja schon die optimiertere Version.

In Pascal muß man ja z.B. immer das ergebnis zuweisen, auch wenn es eigentlich sinnlos wäre ... in ASM könnte man es gleich optimiert schreiben, aber in Pascal schreibt man es halt erstmal hin, damit der Compiler nicht mekert und läßt es sich dann wieder wegoptimieren

z.B. beim Integer:
X wir im EAX übergeben und das Result liegt auch im EAX ... also wäre Result := X; nicht nötig.

Rate also mal warum ich da oben was fett geschrieben hatte

und bei den realen Werten macht die ganze Prüfung halt fabs ... na ja, wenn wann den aufbau der Typen kennt, dann weiß man, daß es da wirklich ein "NegativBit" gibt, welches man einfach löschen kann.
aber es ginge noch schneller

Delphi-Quellcode:
// abs für 'nen double
mov eax, [adresse+4]
and eax, $7fffffff
mov [adresse+4], eax

[add]
CDQ
Convert Double to Quad
EDX:EAX := EAX (signed)

[edit]
zu langsam -.-''
$2B or not $2B
  Mit Zitat antworten Zitat