Оказывается, есть некоторые далекие иностранцы, которые знают английский (и по совпадению стандартизировали на 8-битных компьютерных архитектурах) . Тем не менее, они никогда не слышали ни о ASCII, ни даже в алфавитном порядке.
Считается, что эти инопланетяне собирают информацию с Земли. Тем не менее, они делают это с цифровым оборудованием, которое считывает бессмысленную информацию, когда передача не отправляется ... таким образом, сигнал должен содержаться таким образом, чтобы он выделялся на фоне окружающего шума.
Был создан новый стандарт, смоделированный после того, как Сообщение Аресибо использует длину полупростого сигнала:
Универсальное семиотическое кодирование для обмена информацией (USCII)
(См .: http://uscii.hostilefork.com )
В USCII каждый код получен из растрового изображения, представляющего символ, который имеет простую ширину и простую высоту. Например, это 5x7 представление буквы A:
01110
10001
10001
10001
11111
10001
10001
Это производит 35 бит. Тем не менее, чтобы даже односимвольные сообщения выделялись из шума и выглядели согласованно, строки встроены в контейнерный формат, который помогает усилить основные факторы. Контейнер был выбран, чтобы упростить манипулирование строками в архитектурах, которые работают с кратными 8 битам.
С его контейнером, «А» выше будет выглядеть так:
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
Символы сообщения сначала имеют префикс с пятью сплошными растровыми изображениями 5x7, а в конце добавляются семь сплошных растровых изображений 5x7. ( «Метр» .) Затем каждый из них имеет пять битов, прикрепленных к концу, чтобы получить четные 40 битов.
Наконец, к началу добавлено 7 40-разрядных циклов со всеми нулями, а к концу добавлено 5 40-разрядных циклов со всеми нулями. ( «Молчание» .)
Ваша миссия
Вы должны написать кодировщик. Ввод - это обычная строка ASCII, набранная с клавиатуры. Используемые вами растровые изображения взяты из шрифта CPU 5x7 PIC .
(Примечание: здесь достаточно просто извлечь шрифт со страницы для всех талантливых игроков в код, но если вы хотите, чтобы эти байты были вместе, то они здесь .)
Вывод должен быть напечатанной строкой в шестнадцатеричном формате.
Примеры
Вход :
ABCDEFG
Выход :
0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE074631FC620F463E8C7C074610845C0E4A318CB80FC21E843E0FC21E84200746178C5E0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Вход :
Dear aliens: Please get me off of this planet!!!
Выход :
0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0E4A318CB80001D1FC1E0001C17C5E0002D9842000000000000001C17C5E061084211C00100421080001D1FC1E0002D98C620001F0707C003180630000000000000F463E8420061084211C0001D1FC1E0001C17C5E0001F0707C0001D1FC1E00000000000001F1787C0001D1FC1E0213E421440000000000000375AD620001D1FC1E00000000000001D18C5C01148E210801148E210800000000000001D18C5C01148E210800000000000213E4214408421E8C6200100421080001F0707C00000000000003D1F420061084211C0001C17C5E0002D98C620001D1FC1E0213E421440210840008021084000802108400080FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Разъяснения
- Для этого задания нет необходимости обрабатывать непечатаемые символы (хотя приветствуются отзывы о том, как они могут выглядеть )
Условия выигрыша
0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE074610845C0001D18C5C00842F8C5E0001D1FC1E00000000000746178C5E0001D18C5C061084211C01148E21080210840008021084000802108400080FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Ответы:
Python 2,
671+669663 байтаPHP с zlib,
+738716715 байтВо-первых, ваш PHP должен быть настроен с
--with-zlib
. И запустить этот скрипт из командной строки, какphp 26972.php
. Эта программа принимает данные от STDIN.(Если
short_open_tag=On
я могу сохранить еще 3 байта.)Ungolfed
источник
С
Это на самом деле печатает читаемый человеком гекс (против двоичного для читабельности). Все представлено в виде длинных без знака, и используются только 9-10 шестнадцатеричных цифр из-за (в зависимости от того, используете ли вы заполнение 00000) неудачного формата 6x5 (шрифт 8x4 был бы слишком простым)
удар
источник
0x##number##ULL
(см. Версию bash для альтернативы char), но ideone.com подумал, что это был вызов функции, поэтому я отменил его (gcc был в порядке) ... Я мог бы удалить (пустоту) из основного тоже, но некоторые вещи просто кажутся неправильными.PHP, 874 байта
Вам нужно будет запустить этот скрипт из командной строки (
php uscii.php
), потому что он принимает ввод из стандартного ввода.Ungolfed:
источник
JavaScript ES6 (838 байт)
Не раздавлен :
источник