Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Schnelle Alternativen für Multiplikation mit 2 (https://www.delphipraxis.net/165786-schnelle-alternativen-fuer-multiplikation-mit-2-a.html)

Delphi-Laie 23. Jan 2012 10:11

AW: Schnelle Alternativen für Multiplikation mit 2
 
Also auch Delphis Ergebnisse können inkonsistent sein, das war mir neu, danke!

Was von beiden ist nun aber der Fehler?

0 - 1 = -1, also mathematisch stimmt das mithin. Ist man sich jedoch gewahr, welchen Bereich eine Bytevariable (oder eine andere integre Variable mit und ohne Vorzeichen) hat, dann erscheinen die 255 konsistent, logisch und "richtig".

Medium 23. Jan 2012 10:26

AW: Schnelle Alternativen für Multiplikation mit 2
 
Richtig wäre, bei einem vorzeichenlosen Typen, Pred(0) mit einem Ausnahmefehler zu quittieren, auch ohne Bereichsprüfung. Doof dürfte nur, wie immer sein, dass es vermutlich schon hunderte Prgrämmchen gibt, die sich auf die jeweiligen auch z.T. falschen Verhaltensweisen verlassen, und mit einem nachträglichen Fix "kaputt" gingen. Daher wird eher alles bleiben wie es ist, und bestenfalls die Doku ergänzt/korrigiert.

negaH 23. Jan 2012 10:38

AW: Schnelle Alternativen für Multiplikation mit 2
 
Zitat:

Zitat von himitsu (Beitrag 1146177)

Theoretisch wäre die Addition langsamer als ein Shift und die Multiplication langsamer als eine Addition ... also vom mathematischen Aufwand her,

Bei aktuellen Intel CPUs sollte die Multiplikation mit 2 mit der Additionsmethode performanter sein als mit einem Linksshift per SHL. Das liegt aber nicht an der ALU dieser Chips sondern an den Fähigkeiten der Piplines der CPU. Der ADD Opcode kann besser piplined werden als der SHL Opcode und das heist letzendlich das mit entsprechenden Opcodes vor und nach dieser Addition die CPU eine bessere Auslastung der Piplines ermöglicht als mit dem SHL Opcode und das ist dann der Performacevorteil.

Gruß Hagen


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz