Wie kann man einen Morse Code in binärform ohne Leerzeichen decodieren?

4 Antworten

Das ist unmöglich! Punkt.

Erklärung: Beim Morsen hast du "kurz", "lang" und "pause". Das sind DREI mögliche Werte.

Im Binärformat hast du aber nur "0" und "1", also ZWEI mögliche Werte!

Du kannst also unmöglich drei Werte in zwei Werte quetschen.

Allerdings könntest du dir eine Kodierung überlegen, bei der die Länge des Morsecodes angegeben wird.

Z. B. könntest mit einem Byte die Länge des folgenden Morse-Zeichens angeben, und mit dem folgenden Byte, den eigentlichen Morse-Code in Binärform ("0" ist "kurz" und "1" ist "lang") darstellen, wobei eine Länge von 255 (alle bits auf "1" gesetzt) eine Pause bedeuten.

Beispiel (jeweils 2 Byte; Länge und eigentlicher Code; "Pause" hat nur ein Byte):

M => __    => 00000010 (2)   00000011 (lang lang)
O => ___   => 00000011 (3)   00000111 (lang lang lang)
R => ._.   => 00000011 (3)   00000010 (kurz lang kurz)
S => ...   => 00000011 (3)   00000000 (kurz kurz kurz)
E => .     => 00000001 (1)   00000000 (kurz)
_ => PAUSE => 11111111 (255)
C => _._.  => 00001010 (4)   00001010 (lang kurz lang kurz)
O => ___   => 00000011 (3)   00000111 (lang lang lang)
D => _..   => 00000011 (3)   00000100 (lang kurz kurz)
E => .     => 00000001 (1)   00000000 (kurz)

Man kann sich natürlich noch weitere komplexere oder effizientere Kodierungen überlegen, aber zur Demonstration sollte das hier genügen. :)

Wie die anderen schon sagen, musst du eine Pause kodieren können, um überhaupt zu wissen, wo ein Zeichen oder Wort zu Ende ist. Du könntest aber 1 für an und 0 für aus benutzen. Eine einzelne 1 wäre dann kurz und eine 11 wäre lang. Eine einzelne 0 wäre eine kurze Pause (also zwischen den Punkten und Strichen), eine 00 wäre das Ende eines Zeichens und eine 000 wäre das Ende eines Wortes. Dann könntest du Nachrichten damit verschlüsseln.

110110011011011001011010010101001000110101101001101101100110101001
=
-- --- .-. ... .  -.-. --- -.. .
= Morse code

Wenn du magst, kannst du das binäre dann noch in hexadezimale Form bringen und lustige Botschaften damit verschlüsseln.

55 2cb536cd ab629b6c 6a94d1a9 66b4b6cb 692d2d6b

Es gibt da keine unendlich vielen Möglichkeiten, du probierst einfach alles aus und siehst dann ja, was sinnvoll ist und was nicht. http://beyer.xornet.de/projekte/morse/ kann das z.b.


lozi2712 
Beitragsersteller
 11.12.2014, 18:15

Der Code ist sehr lang und es gibt seeeeehr viele Möglichkeiten Ps: die webseite funktioniert nicht

0

Naja entweder du definierst irgent was als Leerzeichen oder lässt ein Programm drüber laufen was sich die Leerzeichen merkt und später wieder setzt


lozi2712 
Beitragsersteller
 11.12.2014, 18:04

Das ist aber schriftlich :/

0