[C] Bitstuffing

Herakles

Profifragensteller
Moin!

Ich möchte in C ein Bitstuffing implementieren. Es soll nach 5 Einsen eine Null eingefügt werden. Wenn ein Byte also so aussieht:

11111101

dann soll das Ergebnis so aussehen:

11111010 10000000

Soweit, so einfach. Ich hab nur keine Ahnung, wie ich Bitfolgen in C prüfen kann.

Hat jemand einen Hinweis für mich? Ich finde irgendwie nichts im Internet zu dem Thema, was mit hinsichtlich C wirklich weiterhilft.

Beste Grüße
Herakles
 
Mit einer Maske und dem AND-Operator?
Setzen von 1 mit OR und 0 mit AND?
4 Bits lassen sich gut in Hex ausdrücken.
 
So hätte ich das wahrscheinlich auch gemacht, mit nem DFA. Aber es geht eigentlich einfacher...

einfach mit 0xf8 unden und wenn 0xf8 rauskommt, dann 5 Bits weiter im Input (shift left), in Output 5 Einsen und eine Null. Wenn nicht, dann ein Bit weiter (shift left) im Input und das herausgeschobene Bit in den Output.

Am Ende muss man nur evtl Sonderfälle betrachten.
 
Über welchen Durchsatz reden wir hier? reicht es Bit für Bit durch nen DFA zu schicken oder fragst du nach Code der möglichst schnell ist?
 
Ich werde die Daten bit für bit analysieren. Das ist nicht sonderlich performant, funktioniert aber erstmal. Sollte ich dann anschließend noch Optimierung benötigen, mach ich's dann, aber für's Erste sollte das so ok sein.

Danke für Eure zahlreichen Antworten. bsdforen.de hat sich ma wieder als guter Platz für Programmierfragen erwiesen. Toll! :)
 
Zurück
Oben