Le scénario
Dernièrement, vous avez remarqué un comportement étrange avec votre éditeur de texte préféré. Au début, il semblait ignorer des caractères aléatoires dans votre code lors de l'écriture sur le disque. Au bout d'un moment, vous avez remarqué un motif. les caractères avec des valeurs ASCII impaires étaient ignorés. Lors d'une inspection plus poussée, vous avez découvert que vous ne pouvez écrire correctement dans des fichiers que si chaque huitième bit est à zéro. Vous devez maintenant savoir si vos précieux fichiers ont été affectés par cet étrange bogue.
La tâche
Vous devez écrire un programme complet qui détermine si un fichier contient des octets impairs (démontrant qu'il n'est pas corrompu). Mais à cause de votre éditeur de texte, vous ne pouvez pas écrire d'octets impairs dans votre code source. Vous pouvez assumer tout codage préexistant pour la saisie, mais vous devez toujours vérifier chaque octet, pas seulement les caractères.
Contribution
Votre programme prendra le contenu de ou le chemin d'accès à un fichier à partir de stdin ou de la ligne de commande.
Sortie
Votre programme affichera sur stdout soit une valeur de vérité si le fichier donné contient un octet impair, soit une erreur si tous les huit bits sont nuls.
Critères
Ceci est le code de golf, le programme le plus court qui termine la tâche gagne. Pour être une soumission valide, chaque huitième bit du code source des fichiers doit être égal à zéro. Je recommanderais d'inclure une copie des fichiers binaires de votre code source dans votre soumission.
Les failles standard s'appliquent.
Cas de test
(En codage ASCII) Entrée:
"$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~
Output:
falsy
Input:
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
Output:
truthy
Input:
LOREMIPSVMDOLORSITAMETCONSECTETVRADIPISCINGELITSEDDOEIVSMODTEMPORINCIDIDVNTVTLABOREETDOLOREMAGNAALIQVA
VTENIMADMINIMVENIAMQVISNOSTRVDEXERCITATIONVLLAMCOLABORISNISIVTALIQVIPEXEACOMMODOCONSEQVAT
DVISAVTEIRVREDOLORINREPREHENDERITINVOLVPTATEVELITESSECILLVMDOLOREEVFVGIATNVLLAPARIATVR
EXCEPTEVRSINTOCCAECATCVPIDATATNONPROIDENTSVNTINCVLPAQVIOFFICIADESERVNTMOLLITANIMIDESTLABORVM
Output:
truthy
Conseils
Choisir la langue judicieusement, ce défi peut ne pas être possible dans toutes les langues
La commande Unix
xxd -b <file name>
imprimera les fichiers binaires d’un fichier sur la console (avec quelques éléments de formatage supplémentaires).Vous pouvez utiliser d'autres codages que l'ASCII, tels que UTF-8, à condition que toutes les autres règles soient suivies.
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
sont les caractères ASCII imprimables interdits, pour ceux qui s'en soucient. Les caractères imprimables ASCII autorisés sont" $&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~
[CR]
contient le bit impair. J'espérais que WhiteSpace était en sécurité, mais hélas [TAB]
. Si vous voulez aller à l'ancienne, EBCDIC vous donne trois voyelles.