英語を知っている(そして偶然にも8ビットコンピューターアーキテクチャで標準化されている)遠い外国人がいることがわかりました。しかし、彼らはASCIIやアルファベット順についても聞いたことがない。
これらのエイリアンは地球から情報を拾っていると考えられています。しかし、送信されていないときに意味のない情報を読み取るデジタル機器でそうしています...したがって、信号は周囲のノイズから目立つように含まれている必要があります。
Arecibo Messageによるセミプライム信号長の使用をモデルにした新しい標準が作成されました。
情報交換のためのユニバーサル記号的コーディング(USCII)
(参照:http : //uscii.hostilefork.com)
USCIIでは、各コードは、プライム幅とプライム高さを持つ文字を表すビットマップから派生します。たとえば、文字Aのこの5x7表現:
01110
10001
10001
10001
11111
10001
10001
それは35ビットを生成します。それでも、1文字のメッセージでさえノイズから目立たせて一貫性を持たせるために、文字列は、主要な要素を強化するのに役立つコンテナ形式に埋め込まれています。コンテナは、8ビットの倍数で動作するアーキテクチャで文字列を簡単に操作できるように選択されています。
そのコンテナでは、上記の「A」は次のようになります。
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
メッセージの文字には、最初に5つの固体5x7ビットマップのプレフィックスが付けられ、最後に7つの固体5x7ビットマップが追加されます。(「メーター」)次に、これらのそれぞれに5ビットの0ビットを最後に付けて、偶数の40ビットにします。
最後に、7つのオールゼロ40ビットランが先頭に追加され、5つのオールワン40ビットランが最後に追加されます。(「沈黙」。)
あなたの使命
エンコーダーを作成します。入力は、キーボードから入力される従来のASCII文字列です。使用するビットマップは、5x7 PIC CPUフォントのものです。
(注:才能のあるすべてのゴルファーのページからフォントを抽出するのは簡単ですが、ここでそれらのバイトをすべてまとめたい場合は、ます。)
出力は16進数の印刷文字列である必要があります。
例
入力:
ABCDEFG
出力:
0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE074631FC620F463E8C7C074610845C0E4A318CB80FC21E843E0FC21E84200746178C5E0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
入力:
Dear aliens: Please get me off of this planet!!!
出力:
0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0E4A318CB80001D1FC1E0001C17C5E0002D9842000000000000001C17C5E061084211C00100421080001D1FC1E0002D98C620001F0707C003180630000000000000F463E8420061084211C0001D1FC1E0001C17C5E0001F0707C0001D1FC1E00000000000001F1787C0001D1FC1E0213E421440000000000000375AD620001D1FC1E00000000000001D18C5C01148E210801148E210800000000000001D18C5C01148E210800000000000213E4214408421E8C6200100421080001F0707C00000000000003D1F420061084211C0001C17C5E0002D98C620001D1FC1E0213E421440210840008021084000802108400080FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
明確化
- この割り当てでは、印刷できない文字を処理する必要はありません(ただし、それらがどのように見えるかについてのアイデアに関するフィードバックは歓迎します)
勝利条件
0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE074610845C0001D18C5C00842F8C5E0001D1FC1E00000000000746178C5E0001D18C5C061084211C01148E21080210840008021084000802108400080FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF