Сценарий
В последнее время вы замечали странное поведение в вашем любимом текстовом редакторе. Сначала казалось, что он игнорирует случайные символы в вашем коде при записи на диск. Через некоторое время вы заметили шаблон; символы с нечетными значениями ASCII игнорировались. При дальнейшей проверке вы обнаружили, что вы можете правильно записывать файлы, только если каждый восьмой бит равен нулю. Теперь вам нужно знать, была ли эта ценная ошибка затронута на ваших ценных файлах.
Задание
Вы должны написать полную программу, которая определяет, содержит ли файл какие-либо нечетные байты (демонстрируя, что он не поврежден). Но из-за вашего текстового редактора вы не можете писать какие-либо нечетные байты в вашем исходном коде. Вы можете принять любую существующую кодировку для ввода, однако вы все равно должны проверять каждый отдельный байт, а не только символы.
вход
Ваша программа будет извлекать содержимое или путь к файлу из стандартного ввода или командной строки.
Выход
Ваша программа выведет на стандартный вывод либо истинное значение, если данный файл содержит нечетный байт, либо ложное значение, если каждый восьмой бит равен нулю.
критерии
Это код гольф, самая короткая программа, которая завершает задачу, побеждает. Чтобы быть верным представлением, каждый восьмой бит в исходном коде файла должен быть нулем. Я бы порекомендовал включить копию ваших двоичных файлов исходного кода в ваше представление.
Применяются стандартные лазейки .
Тестовые случаи
(В кодировке ASCII) Вход:
"$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~
Output:
falsy
Input:
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
Output:
truthy
Input:
LOREMIPSVMDOLORSITAMETCONSECTETVRADIPISCINGELITSEDDOEIVSMODTEMPORINCIDIDVNTVTLABOREETDOLOREMAGNAALIQVA
VTENIMADMINIMVENIAMQVISNOSTRVDEXERCITATIONVLLAMCOLABORISNISIVTALIQVIPEXEACOMMODOCONSEQVAT
DVISAVTEIRVREDOLORINREPREHENDERITINVOLVPTATEVELITESSECILLVMDOLOREEVFVGIATNVLLAPARIATVR
EXCEPTEVRSINTOCCAECATCVPIDATATNONPROIDENTSVNTINCVLPAQVIOFFICIADESERVNTMOLLITANIMIDESTLABORVM
Output:
truthy
подсказки
Мудро выбирайте язык, эта задача может быть невозможна на любом языке
Команда Unix
xxd -b <file name>
выведет двоичные файлы файла на консоль (вместе с некоторыми дополнительными средствами форматирования)Вы можете использовать другие кодировки, отличные от ASCII, такие как UTF-8, при условии соблюдения всех других правил
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
являются запрещенными печатными символами ASCII, для тех, кто заботится. Допустимые печатные символы ASCII" $&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~
[CR]
есть нечетный бит. Я надеялся, что WhiteSpace был в безопасности, но увы [TAB]
. Если вы хотите пойти в старую школу, EBCDIC дает вам три гласных.