Lo scenario
Ultimamente hai notato strani comportamenti con il tuo editor di testo preferito. Inizialmente sembrava che ignorasse i caratteri casuali nel codice quando si scriveva sul disco. Dopo un po 'hai notato uno schema; i caratteri con valori ASCII dispari venivano ignorati. Sotto ulteriore controllo hai scoperto che puoi scrivere correttamente sui file solo se ogni ottavo bit è zero. Ora devi sapere se i tuoi file importanti sono stati interessati da questo strano bug.
L'obiettivo
È necessario scrivere un programma completo che determini se un file contiene byte dispari (dimostrando che non è corrotto). Ma a causa del tuo editor di testo non puoi scrivere byte dispari nel tuo codice sorgente. Puoi assumere qualsiasi codifica preesistente per l'input, tuttavia devi comunque controllare ogni singolo byte, non solo i caratteri.
Ingresso
Il programma prenderà il contenuto o il percorso di un file da stdin o dalla riga di comando.
Produzione
Il programma emetterà su stdout un valore di verità se il file dato contiene un byte dispari o un falso se ogni ottavo bit è zero.
criteri
Si tratta di code golf, il programma più breve che completa l'attività vince. Per essere un invio valido ogni ottavo bit nel codice sorgente dei file deve essere zero. Raccomanderei di includere una copia dei file binari del codice sorgente nella richiesta.
Si applicano scappatoie standard .
Casi test
(Nella codifica ASCII) Ingresso:
"$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~
Output:
falsy
Input:
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
Output:
truthy
Input:
LOREMIPSVMDOLORSITAMETCONSECTETVRADIPISCINGELITSEDDOEIVSMODTEMPORINCIDIDVNTVTLABOREETDOLOREMAGNAALIQVA
VTENIMADMINIMVENIAMQVISNOSTRVDEXERCITATIONVLLAMCOLABORISNISIVTALIQVIPEXEACOMMODOCONSEQVAT
DVISAVTEIRVREDOLORINREPREHENDERITINVOLVPTATEVELITESSECILLVMDOLOREEVFVGIATNVLLAPARIATVR
EXCEPTEVRSINTOCCAECATCVPIDATATNONPROIDENTSVNTINCVLPAQVIOFFICIADESERVNTMOLLITANIMIDESTLABORVM
Output:
truthy
Suggerimenti
Scegli saggiamente la lingua questa sfida potrebbe non essere possibile in tutte le lingue
Il comando Unix
xxd -b <file name>
stamperà i file binari di un file sulla console (insieme ad alcuni elementi di formattazione extra)È possibile utilizzare altre codifiche diverse da ASCII come UTF-8 purché vengano seguite tutte le altre regole
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
sono i caratteri ASCII stampabili vietati, per chiunque si preoccupi. I caratteri ASCII stampabili consentiti sono" $&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~
[CR]
ha il bit dispari. Speravo che WhiteSpace fosse al sicuro, ma purtroppo [TAB]
. Se vuoi andare alla vecchia scuola, EBCDIC ti dà tre vocali.