Thema: Delphi Nur 5 Bit kopieren

Einzelnen Beitrag anzeigen

Assarbad
(Gast)

n/a Beiträge
 
#12

Re: Nur 5 Bit kopieren

  Alt 6. Dez 2004, 12:58
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;
  Mit Zitat antworten Zitat