Einzelnen Beitrag anzeigen

Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#16

AW: Schnelle Alternativen für Multiplikation mit 2

  Alt 17. Jan 2012, 15:31
Multiplikationen und Divisionen mit den Konstanten 2,4,8,16,... werden vom Delphi Compiler automatisch in einen Links- oder Rechtshift übersetzt.
Delphi-Quellcode:
x := x * 256;
x := x shl 8;
Man kann sich also die Shift-Operationen hier sparen.
Was anderes ist es, wenn erst während der Laufzeit der Multiplikator oder Divisor feststeht.
Dann macht eine Shiftoperation natürlich Sinn.
Theorie und Praxis...

Delphi-Quellcode:
Aus: A := A * 8; wird

Add ebx,ebx
Add ebx,ebx
Add ebx,ebx

Aus: A := A div 2; wird

mov ecx,2
mov eax,ebx
cdq
idev ecx
mov ebx,eax
Mavarik
  Mit Zitat antworten Zitat