Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Binärcode String Formatieren so das immer 8 Ziffern ...


Magic2001 - Do 01.08.13 14:18
Titel: Binärcode String Formatieren so das immer 8 Ziffern ...
Ich habe folgenden String: 011101011110011010101110
Und möchte daraus folgenden machen: 01110101 11100110 10101110

Wie programmiere ich das am besten? Kann auch mal sein das 2 Ziffern zu viel sind, diese sollen dann am Ende stehen.
Danke!


Nersgatt - Do 01.08.13 14:25

Du könntest die Stellen durchgehen und prüfen, ob die Stelle ein vielfaches von 8 ist. Z.B. mit dem MOD-operator.

Ungefähr so (Pseudocode):

Quelltext
1:
2:
3:
4:
für n = 1 bis Länge(Binärstring)
  Ausgabe = Ausgabe + n-te Stelle vom Binärstring
  wenn n mod 8 = 0 dann Ausgabe = Ausgabe + ' '
nächstes n


Magic2001 - Do 01.08.13 15:01

ok, danke das funktioniert gut :)


Nersgatt - Do 01.08.13 15:03

Schön. Beachte nur das Ergebnis, wenn Dein String Ausgangsstring eine Länge hat, die ein Vielfaches von 8 ist. Dann ist in der Ausgabe das letzte Zeichen eine Leerstelle. Wenn das nicht gewünscht ist, müsstest Du das noch abfangen.


FinnO - Do 01.08.13 15:19

Insbesondere müsstest du eigentlich von hinten nach vorne durchgehen, da z.B.

11001011100 wohl eher 110 01011100 sein soll.


Gammatester - Do 01.08.13 15:31

Oder vorne (bzw. je nach Interpretation hinten) mit 0 auffüllen, so daß die Stringlänge ohne Leerzeichen ein Vielfaches von 8 ist.