![]() |
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:
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.
//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; shr = logisches Shiften sar = arithmetisches Shiften [edit=Chakotay1308]Beitrags-Titel und -Klassifizierung angepasst. Mfg, Chakotay1308[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz