Es stellte sich heraus, dass es einige entfernte Aliens gibt, die Englisch sprechen (und zufällig auf 8-Bit-Computerarchitekturen standardisiert sind) . Sie haben noch nie von ASCII gehört, noch nicht einmal von alphabetischer Reihenfolge.
Es wird angenommen, dass diese Außerirdischen Informationen von der Erde sammeln. Dabei handelt es sich um ein digitales Gerät, das bedeutungslose Informationen liest, wenn keine Übertragung erfolgt. Daher muss das Signal so enthalten sein, dass es sich von Umgebungsgeräuschen abhebt.
Es wurde ein neuer Standard erstellt, der der Verwendung einer Semiprime-Signallänge durch Arecibo Message nachempfunden ist:
Universelle semiotische Codierung für den Informationsaustausch (USCII)
(Siehe: http://uscii.hostilefork.com )
In USCII wird jeder Code von einer Bitmap abgeleitet, die das Zeichen darstellt, das eine Primbreite und eine Primhöhe hat. Zum Beispiel diese 5x7 Darstellung eines Buchstabens A:
01110
10001
10001
10001
11111
10001
10001
Das ergibt 35 Bit. Damit sich Nachrichten mit nur einem Zeichen vom Rauschen abheben und kohärent aussehen, sind Zeichenfolgen in ein Containerformat eingebettet, mit dessen Hilfe die Primfaktoren verstärkt werden. Der Container wurde ausgewählt, um das Manipulieren der Zeichenfolgen auf Architekturen, die ein Vielfaches von 8 Bit verarbeiten, zu vereinfachen.
Mit seinem Container würde das "A" wie folgt aussehen:
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
0111010001100011000111111100011000100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111111111
Den Zeichen der Nachricht werden zunächst fünf durchgehende 5x7-Bitmaps vorangestellt und am Ende sieben durchgehende 5x7-Bitmaps hinzugefügt. (Das "Meter" .) Dann hat jedes von diesen fünf 0 Bits am Ende, um gerade 40 Bits zu machen.
Schließlich werden am Anfang 7 40-Bit-Läufe mit allen Nullen und am Ende 5 40-Bit-Läufe mit allen Nullen hinzugefügt. (Die "Stille" .)
Deine Mission
Sie sollen einen Encoder schreiben. Die Eingabe ist eine herkömmliche ASCII-Zeichenfolge, die über die Tastatur eingegeben wird. Die verwendeten Bitmaps stammen aus der 5x7- PIC-CPU-Schriftart .
(Hinweis: Es ist einfach genug, die Schrift für alle talentierten Code-Golfer hier von der Seite zu extrahieren, aber wenn Sie diese Bytes alle zusammen haben möchten, sind sie hier .)
Die Ausgabe sollte eine gedruckte Zeichenfolge in hexadezimaler Schreibweise sein.
Beispiele
Eingabe :
ABCDEFG
Ausgabe :
0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE074631FC620F463E8C7C074610845C0E4A318CB80FC21E843E0FC21E84200746178C5E0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Eingabe :
Dear aliens: Please get me off of this planet!!!
Ausgabe :
0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0E4A318CB80001D1FC1E0001C17C5E0002D9842000000000000001C17C5E061084211C00100421080001D1FC1E0002D98C620001F0707C003180630000000000000F463E8420061084211C0001D1FC1E0001C17C5E0001F0707C0001D1FC1E00000000000001F1787C0001D1FC1E0213E421440000000000000375AD620001D1FC1E00000000000001D18C5C01148E210801148E210800000000000001D18C5C01148E210800000000000213E4214408421E8C6200100421080001F0707C00000000000003D1F420061084211C0001C17C5E0002D98C620001D1FC1E0213E421440210840008021084000802108400080FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Klarstellungen
- Es ist nicht erforderlich, nicht druckbare Zeichen für diese Aufgabe zu verarbeiten (Feedback zu Ideen, wie diese aussehen könnten, ist jedoch willkommen).
Gewinnbedingungen
0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE074610845C0001D18C5C00842F8C5E0001D1FC1E00000000000746178C5E0001D18C5C061084211C01148E21080210840008021084000802108400080FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF