- PVSM.RU - https://www.pvsm.ru -
Доброй вам пятницы, читатели. У меня с друзьями есть такая традиция — мы собираемся и вместе программируем. Раньше у нас такая работа была, а сейчас уже просто традиция — кодобредогенерация. Мы выбрали несложную задачку и нарисовали решений кто во что горазд. Код будет ближе к концу статьи, но не спешите листать вниз, надо же сначала объяснить, что это за код и как мы пришли к нему.
Сама задача — получить число 0x17 самым внезапным образом.

Внимание! Данный пост оскорбляет чувство прекрасного и практики программирования на C. Читайте, воспринимайте и комментируйте на свой страх и риск.
Вы любите магические числа в коде? Вот бывает смотришь какой-то код и видишь a = b ^ 7. Почему именно 7? Что это за число, откуда оно взялось, что означает? Столько много вопросов и так мало ответов, если кто-то не утрудился комментарием. Есть несколько способов разрешить неопределенность такого рода:
Зачем рассматривать еще какие-то способы? Берем последний и в путь! Но, как я сказал, есть проблема — не всегда есть адекватный способ вычислениями показать путь к числу. Но задача стояла избавиться от магического числа, а не сделать это логично. Более того, доведем задачу до абсурда — будем получать числа максимально непонятным образом.
Программно-аппаратный комплекс в виде вызова функции rand() постановил, что избавляться мы будем от магического числа 0x17.
Коллектив погроммистов в составе меня, Viscount [1] и [УДАЛЕНО] приступил к творчеству.
0х17 способов получить 0x17:
int Ox01 = ~-~-~-~-~-~-~-~-~-' ';
int Ox02 = ((!true)["true"]-(false)["FALSE"])>>true;
int Ox03 = 'X'/2/2^!*"";
int Ox04 = ('0'>>!*"")-!*"";
int Ox05 = (~'!'-~'~')>>!*"">>(2==1==0);
int Ox06 = ('|'||'|'|'|')["||||||||"]%*"error";
int Ox07 = '.'>>!false;
int Ox08 = '\'>>('!'>>(1<<2));
int Ox09 = '/'-'/'/'/'>>'/'/'/';
int Ox0a = (*"")["yes"]^(*"")["no"];
int Ox0b = *"yes"^*"no";
int Ox0c = '0'/2-!*"";
int Ox0d = ((!'!'+'+')>>true)+(true<<true);
int Ox0e = (-~true^!false)*(true<<(-~true|!false))-!false;
int Ox0f = '!'-'^'%*"*";
int Ox10 = -~*" L"^-~*"5Z";
int Ox11 = *"Totally" -* "not" +* "0x17" + true;
int Ox12 = -~!*""*-~!*""*-~!*""*-~!*""*-~!*""+~!*""*-~!*""*-~!*""-true;
int Ox13 = -compl(-compl true xor true)<<-compl true|'8'>>('1'^'2');
int Ox14 = '^'>>('<'^'>');
int Ox15 = *"'"-(' '>>!0);
int Ox16 = '_'>>-~1;
int Ox17 = 010-001+010+010;
Для сомневающихся в том, что указанная задача выполнена верно — ссылка на ideone [2].
Упражнения, направленные на разбор тех или иных действий, я оставляю в качестве собственной деградации читателю. Но при появлении вопросов готов ответить на них в комментариях. Там же призываю всех желающих демонстрировать свои способы выстрелить себе в ногу сделать рокетжамп.
Кстати, мы ищем Питон-разработчика [3], который умеет программировать понятнее чем я. Присоединяйтесь!
Автор: Кравец Василий
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/c-3/278303
Ссылки в тексте:
[1] Viscount: https://habrahabr.ru/users/viscount/
[2] ideone: https://ideone.com/5ybSn9
[3] Питон-разработчика: https://amonitoring.ru/vacancy/razrabotchik-python/
[4] Источник: https://habrahabr.ru/post/353914/?utm_source=habrahabr&utm_medium=rss&utm_campaign=353914
Нажмите здесь для печати.