Вдохновлен следующим комиксом XKCD:

В «Работа над» Мисси Эллиот, часть припева выглядит следующим образом:
Is it worth it, let me work it
I put my thing down, flip it and reverse it
Имея это в виду, я предлагаю следующий вызов кода гольф:
Создайте код, который по порядку:
- Принимает 8-битный вход ASCII от STDIN; например
n(Hex 6E или Bin 01101110) - Сдвигает каждый байт на 8 бит на 1 бит (я полагаю, это называется битовый сдвиг вниз), например,
01101110становится00110111(«опусти мою вещь»); - Инвертирует биты каждого байта, например,
00110111становится11001000(«переверни»); - Инвертирует биты для каждого байта, например
11001000становится00010011(«перевернуть его»); - Если значение байта меньше 32, то перед преобразованием обратно в ASCII выполните
(95 + [byte value])или, другими словами,(126-(31-[byte value]))на байте ... Если значение байта все еще меньше 32, повторите шаг 5 - Если значение байта больше 126, то перед преобразованием обратно в ASCII выполните
([byte value] - 95)или, другими словами,(32+([byte value]-127))в байте ... Если значение все еще больше 126, повторите шаг 6. - Показать недавно преобразованную строку как ASCII.
Пример этого кода в действии:
(Вклад, стоит ли это того?)
workit missy («missy» - вход, «workit» - функция)
Теперь за кулисами ...
(позвольте мне работать это ... в двоичный файл)
01101101 01101001 01110011 01110011 01111001
(Положи мою вещь ... Побито)
00110110 00110100 00111001 00111001 00111100
(...Переверните его...)
11001001 11001011 11000110 11000110 11000011
(... И поменять это!)
10010011 11010011 01100011 01100011 11000011
(Преобразовано обратно в десятичную)
147 211 99 99 195
(Выполнить необходимую математику)
147-95 211-95 99 99 195-95 => 52 116 99 99 100
(Конвертировать обратно в ASCII и отобразить вывод)
4tccd
правила
- Самый короткий код выигрывает ... просто так ...
- Ввод может быть через функцию, по подсказке или как угодно, если вы можете заставить правило 1 «работать» для вас ...;)
- Я не за обратимостью, пока вы можете заставить код делать то, что я просил, я буду счастлив ...
Удачи!
0 1 1 0 1 1 0 1и 0 1 1 0 1 0 0 1дляmi
Pпревращается в значение байта 235и вычитание 95оставляет вас с 140. Все еще непечатно. Или я неправильно понял?