Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Object-Pascal / Delphi-Language (https://www.delphipraxis.net/35-library-object-pascal-delphi-language/)
-   -   Delphi shr für Signed Typen (Integer) in Delphi 7 (https://www.delphipraxis.net/64707-shr-fuer-signed-typen-integer-delphi-7-a.html)

SirThornberry 7. Mär 2006 09:39


shr für Signed Typen (Integer) in Delphi 7
 
Hallo,

für alle die sich auch mit SHR rumärgern und sich wundern das falsche Ergebnisse kommen hier eine Funktion die SHR mit vorzeichenbehafteten typen richtig durchführt:
Delphi-Quellcode:
//Ersatz für shr weil shr nur für Unsigned funktioniert
function SSHR(AInt: Integer; ACnt: Byte): Integer; assembler;
asm
  mov cl, dl
  sar eax, cl
end;
Grund ist ganz einfach. Delphi erzeugt bei der Verwendung von "shr" assembler-Code mit der Anweisung "shr", für signed-Typen muss aber "sar" verwendet werden.

shr = logisches Shiften
sar = arithmetisches Shiften

[edit=Chakotay1308]Beitrags-Titel und -Klassifizierung angepasst. Mfg, Chakotay1308[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:27 Uhr.

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