Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Nur 5 Bit kopieren (https://www.delphipraxis.net/35339-nur-5-bit-kopieren.html)

Sharky 6. Dez 2004 11:54

Re: Nur 5 Bit kopieren
 
Hai Andy,

Du musst jetzt nur noch die Bits nach rechts verschieben Delphi-Referenz durchsuchenSHR

[edit]
Delphi-Quellcode:
  b := (Ziel and Mask) SHR 4;

Assarbad 6. Dez 2004 11:58

Re: Nur 5 Bit kopieren
 
Zitat:

Zitat von Sharky
Hai Andy,

Du musst jetzt nur noch die Bits nach rechts verschieben Delphi-Referenz durchsuchenSHR

Hi Andy, da hat Sharky recht.

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;

andy65 7. Dez 2004 08:23

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.
Seite 2 von 2     12   

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