![]() |
Re: Nur 5 Bit kopieren
Hai Andy,
Du musst jetzt nur noch die Bits nach rechts verschieben ![]() [edit]
Delphi-Quellcode:
b := (Ziel and Mask) SHR 4;
|
Re: Nur 5 Bit kopieren
Zitat:
Jetzt mußt du nur mal sagen, ob die restlichen Bits im Zieloperanden erhalten bleiben sollen. Wenn ja, ist es nochmal ein wenig komplizierter, da mußt du das Ergebnis von "Quelle UND Maske" mit SHR oder ROR nach rechts verschieben und die negative Maske ebenfalls, da du ja dann alles außer Bits 0-4 erhalten willst. Nachtrag: ... ich hab da mal was vorbereitet ;)
Delphi-Quellcode:
function CopyBits(Mask, Source:Word; var Target:Word; ShiftTrgtBits:ShortInt = 0):Word;
begin // We don't want to shift at all if (ShiftTrgtBits = 0) then Target := (Source AND Mask) OR (Target AND (NOT Mask)) else // We want to shift <--- if (ShiftTrgtBits < 0) then Target := ((Source AND Mask) SHL ShiftTrgtBits) OR (Target AND ((NOT Mask) SHL ShiftTrgtBits)) else // We want to shift ---> if (ShiftTrgtBits > 0) then Target := ((Source AND Mask) SHR ShiftTrgtBits) OR (Target AND ((NOT Mask) SHR ShiftTrgtBits)); Result := Target; end; |
Re: Nur 5 Bit kopieren
hallo
Besten Dank für Eure Hilfe @Assarbad Besten Dank für Deine funktion. Hat mir sehr geholfen. Gruss Andy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:56 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