Einzelnen Beitrag anzeigen

Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Bit-Schiebereien

  Alt 9. Mai 2014, 10:33
vom Lehrbuch her ist mir das schon bekannt.
Wenn ich ein "komplettes" Byte habe ist das noch machbar.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var b:Byte;
begin
  b := $30; //110000
  Label1.caption := IntToStr(Ord(b shr 2)); //x shr 2 macht daraus 001100 und Ord die gewünschte 12 fertig
end;
Doch wie gehe ich hier vor:
Ich bekomme eine Reihe von ca. 60 Bytes (480Bits) und muss sie eigentlich im Ganzen betrachten.
von diesem String muss ich Bit 173-178 herausziehen und dezimal ausgeben.
Muss ich berechnen in welchem Byte(s) die Bits 173-178 stecken? sie werden sich sicherlich in mehrere Bits aufteilen.
Ich kann ja nicht 21,6 bis 22,26 Bytes ausschneiden.
Die Möglichkeit den String könnte ich Binär umwandeln und die Bits herausziehen. Das dauert zu lange.
Die Frage ist, ob es eine effiziente Möglichkeit gibt aus einem beliebig langen String bestimmte Bits herauszuziehen.

Gruß Kostas

P.S. Übrigens, danke für den Link. Wird einiges besser erklärt wie in Lehrbüchern.

Geändert von Kostas ( 9. Mai 2014 um 10:35 Uhr)
  Mit Zitat antworten Zitat