3470

Как становились проститутками до изобретения Javascript⁠⁠

Как становились проститутками до изобретения Javascript

Онлайн-компилятор

IT-юмор

7.6K постов53.3K подписчиков

Правила сообщества

Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору

501
Автор поста оценил этот комментарий

Объясняю для непрограммистов.

• '1' + '5' + '9': в одиночных кавычках — это char, код символа в кодировке. В большинстве современных машин кодировка — что-то основанное на ASCII, то есть 49+53+57=159. Просто забавно подобранные ASCII-коды. Формат %i выводит всё это как int, основной целый тип.

• '9' - '2': это число 7 во всех мыслимых кодировках: для удобства программирования цифры располагают последовательно от 0 до 9.

• '9' - 2 в форматах %i и %c: опять-таки, это код символа '7' во всех мыслимых кодировках, так что формат %i должен вывести код символа '7' (55 в ASCII и производных), а формат %c — соответствующий символ. Но тут есть и ещё один хитрый уровень: в функциях с переменными параметрами всё, что короче, чем int, расширяется до int, а float до double — потому кидать в стек int и писать в форматной строке тип char безопасно. На всех машинах. В любом случае возьмёт из стека четыре (как правило, но не обязательно) байта, а из них — только младший.

• '5' + 2 в форматах %i и %c: аналогично.

• 1*1 в формате %i — единица. Ну, это понятно.

• 0*'1' в формате %i — это должен быть ноль.

• '0'*'1' в формате %c: зависит от кодировки, но в мире победившего ASCII это будет 48·49=2352. Как сказано выше, кидать в стек int и писать формат %c безопасно, но будет взят младший байт — остаток от деления на 256. Коды подобраны так, чтобы это был 48, то есть символ '0'.

UPD. Простейшая математика говорит, что это будет '0' во всех кодировках, где код цифры '0' делится на 16. И в EBCDIC тоже. Если, конечно, байт восьмибитный — а то всякие были машины во времена появления Си.

• '1'*'1' и '1'*'0' в формате %i: если '0'=48 и '1'=49, считайте сами.

• Смайлик с катаканой в формате %s: работает на Unix-подобных системах, где остановились на рабочей кодировке UTF-8. Иначе хрен вам, а не катакана.

раскрыть ветку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества