Das Szenario
In letzter Zeit haben Sie ein merkwürdiges Verhalten mit Ihrem bevorzugten Texteditor festgestellt. Zuerst schien es, dass es zufällige Zeichen in Ihrem Code ignorierte, wenn auf die Festplatte geschrieben wurde. Nach einer Weile bemerkten Sie ein Muster; Zeichen mit ungeraden ASCII-Werten wurden ignoriert. Bei weiterer Überprüfung haben Sie festgestellt, dass Sie nur dann richtig in Dateien schreiben können, wenn jedes achte Bit Null ist. Jetzt müssen Sie wissen, ob Ihre wertvollen Dateien von diesem seltsamen Fehler betroffen sind.
Die Aufgabe
Sie müssen ein vollständiges Programm schreiben, das feststellt, ob eine Datei ungerade Bytes enthält (um zu demonstrieren, dass sie nicht beschädigt ist). Aufgrund Ihres Texteditors können Sie jedoch keine ungeraden Bytes in Ihren Quellcode schreiben. Sie können eine bereits vorhandene Codierung für die Eingabe annehmen, müssen jedoch jedes einzelne Byte und nicht nur Zeichen überprüfen.
Eingang
Ihr Programm übernimmt den Inhalt oder den Pfad zu einer Datei entweder über die Standard- oder die Befehlszeile.
Ausgabe
Ihr Programm gibt entweder einen Wahrheitswert aus, wenn die angegebene Datei ein ungerades Byte enthält, oder einen Fehler, wenn jedes achte Bit Null ist.
Kriterien
Dies ist Codegolf, das kürzeste Programm, das die Aufgabe abschließt, gewinnt. Um eine gültige Übermittlung zu sein, muss jedes achte Bit im Quellcode der Datei eine Null sein. Ich würde empfehlen, Ihrer Einreichung eine Kopie der Binärdateien Ihres Quellcodes beizufügen.
Es gelten Standardlücken .
Testfälle
(In ASCII-Codierung) Eingabe:
"$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~
Output:
falsy
Input:
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
Output:
truthy
Input:
LOREMIPSVMDOLORSITAMETCONSECTETVRADIPISCINGELITSEDDOEIVSMODTEMPORINCIDIDVNTVTLABOREETDOLOREMAGNAALIQVA
VTENIMADMINIMVENIAMQVISNOSTRVDEXERCITATIONVLLAMCOLABORISNISIVTALIQVIPEXEACOMMODOCONSEQVAT
DVISAVTEIRVREDOLORINREPREHENDERITINVOLVPTATEVELITESSECILLVMDOLOREEVFVGIATNVLLAPARIATVR
EXCEPTEVRSINTOCCAECATCVPIDATATNONPROIDENTSVNTINCVLPAQVIOFFICIADESERVNTMOLLITANIMIDESTLABORVM
Output:
truthy
Tipps
Wähle die Sprache mit Bedacht Diese Herausforderung ist möglicherweise nicht in jeder Sprache möglich
Der Unix-Befehl
xxd -b <file name>
druckt die Binärdateien einer Datei auf die Konsole (zusammen mit einigen zusätzlichen Formatierungselementen).Sie können andere Kodierungen als ASCII wie UTF-8 verwenden, solange alle anderen Regeln eingehalten werden
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
sind die gesperrten druckbaren ASCII-Zeichen für alle, die sich interessieren. Die zulässigen druckbaren ASCII-Zeichen sind" $&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~
[CR]
das ungerade Bit vorhanden ist. Ich hatte gehofft, dass WhiteSpace in Sicherheit ist, aber leider [TAB]
. Wenn Sie auf die alte Schule gehen möchten, gibt Ihnen EBCDIC drei Vokale.