Okazuje się, że istnieją odległe kosmici znający angielski (i przypadkowo znormalizowani na 8-bitowych architekturach komputerowych) . Jednak nigdy nie słyszeli o ASCII ani nawet porządku alfabetycznym.
Uważa się, że ci kosmici zbierają informacje z Ziemi. Robią to jednak ze sprzętem cyfrowym, który odczytuje bezsensowne informacje, gdy żadna transmisja nie jest wysyłana ... dlatego sygnał musi być zawarty w sposób odróżniający się od otaczającego hałasu.
Utworzono nowy standard, wzorowany na użyciu komunikatu Arecibo o długości sygnału semiprime:
Universal Semiotic Coding for Information Interchange (USCII)
(Zobacz: http://uscii.hostilefork.com )
W USCII każdy kod pochodzi z mapy bitowej reprezentującej znak, który ma szerokość pierwszą i wysokość pierwszą. Na przykład ta reprezentacja litery A 5x7:
01110
10001
10001
10001
11111
10001
10001
To daje 35 bitów. Jednak aby nawet jednoznakowe komunikaty wyróżniały się z szumu i wyglądały spójnie, ciągi znaków są osadzone w formacie kontenera, który pomaga wzmocnić czynniki pierwsze. Kontener został wybrany, aby ułatwić manipulowanie ciągami w architekturach, które działają na wielokrotnościach 8 bitów.
Ze swoim pojemnikiem powyższe „A” wyglądałoby następująco:
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
Znaki wiadomości są najpierw poprzedzone pięcioma jednolitymi mapami bitowymi 5x7, a na końcu dodanymi siedem jednolitych map bitowych 5x7. ( „Licznik” .) Następnie każdy z nich ma pięć zer bitów sczepionych na końcu, aby uzyskać nawet 40 bitów.
Wreszcie, na początku dodanych jest 7 całkowicie zerowych 40-bitowych przebiegów, a na końcu 5 wszystkich 40-bitowych przebiegów. ( „Cisza” .)
Twoja misja
Masz napisać enkoder. Dane wejściowe to konwencjonalny ciąg ASCII wpisywany z klawiatury. Użyte bitmapy pochodzą z czcionki PIC CPU 5x7 .
(Uwaga: Łatwo jest wyodrębnić czcionkę ze strony dla wszystkich utalentowanych golfistów tutaj, ale jeśli chcesz, aby wszystkie bajty razem tutaj były ).
Dane wyjściowe powinny być drukowanym ciągiem szesnastkowym.
Przykłady
Wejście :
ABCDEFG
Wyjście :
0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE074631FC620F463E8C7C074610845C0E4A318CB80FC21E843E0FC21E84200746178C5E0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Wejście :
Dear aliens: Please get me off of this planet!!!
Wyjście :
0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0E4A318CB80001D1FC1E0001C17C5E0002D9842000000000000001C17C5E061084211C00100421080001D1FC1E0002D98C620001F0707C003180630000000000000F463E8420061084211C0001D1FC1E0001C17C5E0001F0707C0001D1FC1E00000000000001F1787C0001D1FC1E0213E421440000000000000375AD620001D1FC1E00000000000001D18C5C01148E210801148E210800000000000001D18C5C01148E210800000000000213E4214408421E8C6200100421080001F0707C00000000000003D1F420061084211C0001C17C5E0002D98C620001D1FC1E0213E421440210840008021084000802108400080FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Wyjaśnienia
- W tym zadaniu nie ma potrzeby obsługiwać znaków niedrukowalnych (choć mile widziane są opinie na temat tego, jak mogą one wyglądać )
Warunki wygranej
0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE074610845C0001D18C5C00842F8C5E0001D1FC1E00000000000746178C5E0001D18C5C061084211C01148E21080210840008021084000802108400080FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF