Scenariusz
Ostatnio zauważyłeś dziwne zachowanie w swoim ulubionym edytorze tekstu. Na początku wydawało się, że ignoruje losowe znaki w kodzie podczas zapisywania na dysku. Po chwili zauważyłeś wzór; znaki o nieparzystych wartościach ASCII były ignorowane. Podczas dalszej kontroli odkryłeś, że możesz poprawnie zapisywać do plików tylko wtedy, gdy co ósmy bit jest równy zero. Teraz musisz wiedzieć, czy ten cenny plik został dotknięty tym dziwnym błędem.
Zadanie
Musisz napisać kompletny program, który określa, czy plik zawiera jakieś nieparzyste bajty (pokazując, że nie jest uszkodzony). Ale z powodu edytora tekstu nie można pisać żadnych nieparzystych bajtów w kodzie źródłowym. Możesz założyć wcześniej istniejące kodowanie dla danych wejściowych, jednak nadal musisz sprawdzać każdy pojedynczy bajt, nie tylko znaki.
Wejście
Twój program pobierze zawartość lub ścieżkę do pliku ze standardowego wejścia lub wiersza poleceń.
Wynik
Twój program wyświetli stdout albo prawdziwą wartość, jeśli dany plik zawiera nieparzysty bajt, albo fałsz, jeśli co ósmy bit jest równy zero.
Kryteria
To jest golf golf, najkrótszy program, który wykonuje zadanie, wygrywa. Aby zgłoszenie było prawidłowe, co ósmy bit w kodzie źródłowym plików musi wynosić zero. Polecam dołączenie kopii plików binarnych kodu źródłowego do twojego zgłoszenia.
Przypadki testowe
(W kodowaniu ASCII) Wejście:
"$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~
Output:
falsy
Input:
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
Output:
truthy
Input:
LOREMIPSVMDOLORSITAMETCONSECTETVRADIPISCINGELITSEDDOEIVSMODTEMPORINCIDIDVNTVTLABOREETDOLOREMAGNAALIQVA
VTENIMADMINIMVENIAMQVISNOSTRVDEXERCITATIONVLLAMCOLABORISNISIVTALIQVIPEXEACOMMODOCONSEQVAT
DVISAVTEIRVREDOLORINREPREHENDERITINVOLVPTATEVELITESSECILLVMDOLOREEVFVGIATNVLLAPARIATVR
EXCEPTEVRSINTOCCAECATCVPIDATATNONPROIDENTSVNTINCVLPAQVIOFFICIADESERVNTMOLLITANIMIDESTLABORVM
Output:
truthy
Napiwki
Wybierz język mądrze. To wyzwanie może nie być możliwe w każdym języku
Polecenie Unix
xxd -b <file name>
wydrukuje pliki binarne pliku na konsoli (wraz z dodatkowymi funkcjami formatowania)Możesz używać innych kodowań innych niż ASCII, takich jak UTF-8, o ile wszystkie inne reguły są przestrzegane
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
są zakazanymi drukowalnymi znakami ASCII dla każdego, kogo to obchodzi. Dozwolone znaki do wydruku ASCII to" $&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~
[CR]
ma on dziwny bit. Miałem nadzieję, że WhiteSpace jest bezpieczny, ale niestety [TAB]
. Jeśli chcesz iść do starej szkoły, EBCDIC daje ci trzy samogłoski.