Thema: Delphi Nur 5 Bit kopieren

Einzelnen Beitrag anzeigen

Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#5

Re: Nur 5 Bit kopieren

  Alt 5. Dez 2004, 21:46
das vorangegangene Beispiel löscht die anderen Bits (welche Du vielleicht noch brauchst...
Delphi-Quellcode:
var a,
    b,
    c word;
    Bits : Integer;
    Shift :Integer;
    Maske : Word;
begin
  Bits := 5;
  Shift := 4; // du willst also bit 4,5,6,7 und 8 übertragen
  Mask := (Word(trunc(power(2,Bits+Shift)-1))) xor (Word(trunc(power(2,Shift)-1)));
  a := IrgendeinWert;
  b := EinAndererWert;
  b := b or Mask; // in b sind nun alle 5 Bits gesetzt
  b := b xor Mask; // nun sind sie alle gelöscht
  c := a and Mask; // c enthält nur die gesuchten Bits aus a
  b := b or c; // die 5 Bits sind in b genauso gesetzt wie in a

// Kurzversion:
  b := ((b or Mask) xor Mask) or (a and Mask);
// nach Assarbad:
  b := (b and (not Mask)) or (a and Mask);

end
Gruß
[edit]Zu langsam und lang nicht so schön wie Assarbad [/Edit]
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat