Einzelnen Beitrag anzeigen

Dejan Vu
(Gast)

n/a Beiträge
 
#23

AW: Bit-Schiebereien

  Alt 9. Mai 2014, 12:39
Wie wäre es mit einer kleinen Klasse?
Delphi-Quellcode:
Type
  TBits = Class
  public
    constructor Create (data : TBytes);
    function GetBits (BitFrom, BitTo : Integer) : TBytes;
  End;
Und 'GetBits' macht nichts anderes, als die Bytes aus data von Index BitsFrom/8-BitsTo/8 zu kopieren und um BitsFrom mod 8 zu shiften (den Überlauf vom folgenden Byte einmaskieren), und vom letzten Byte müssen die Bits (BitsTo mod 8 - BitsFrom mod 8) weggeschnippelt werden.

Irgendwie so jedenfalls. Mit Papier und Stift sind die Shiftoffsets und das letzte Maskieren doch schnell zusammengezählt.

Alternativ (aber saulangsam) überführt man den Byte-Stream in ein Array of Boolean und bei der Abfrage erzeugt man aus dem Bits dann wieder einen Byte-Stream.
  Mit Zitat antworten Zitat