El escenario
Últimamente has notado un comportamiento extraño con tu editor de texto favorito. Al principio parecía que estaba ignorando caracteres aleatorios en su código al escribir en el disco. Después de un tiempo notó un patrón; Se ignoraron los caracteres con valores ASCII impares. Bajo una inspección adicional descubrió que solo puede escribir en archivos correctamente si cada octavo bit es cero. Ahora necesita saber si sus archivos valiosos se han visto afectados por este extraño error.
La tarea
Debe escribir un programa completo que determine si un archivo contiene bytes impares (lo que demuestra que no está dañado). Pero debido a su editor de texto, no puede escribir bytes impares en su código fuente. Puede asumir cualquier codificación preexistente para la entrada, sin embargo, aún debe verificar cada byte individual, no solo los caracteres.
Entrada
Su programa tomará el contenido o la ruta a un archivo desde stdin o línea de comando.
Salida
Su programa generará en stdout un valor verdadero si el archivo dado contiene un byte impar o falso si cada octavo bit es cero.
Criterios
Este es el código de golf, el programa más corto que completa la tarea gana. Para ser un envío válido cada octavo bit en el código fuente de los archivos debe ser un cero. Recomendaría incluir una copia de los binarios de su código fuente en su envío.
Se aplican lagunas estándar .
Casos de prueba
(En codificación ASCII) Entrada:
"$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~
Output:
falsy
Input:
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
Output:
truthy
Input:
LOREMIPSVMDOLORSITAMETCONSECTETVRADIPISCINGELITSEDDOEIVSMODTEMPORINCIDIDVNTVTLABOREETDOLOREMAGNAALIQVA
VTENIMADMINIMVENIAMQVISNOSTRVDEXERCITATIONVLLAMCOLABORISNISIVTALIQVIPEXEACOMMODOCONSEQVAT
DVISAVTEIRVREDOLORINREPREHENDERITINVOLVPTATEVELITESSECILLVMDOLOREEVFVGIATNVLLAPARIATVR
EXCEPTEVRSINTOCCAECATCVPIDATATNONPROIDENTSVNTINCVLPAQVIOFFICIADESERVNTMOLLITANIMIDESTLABORVM
Output:
truthy
Consejos
Elija el idioma sabiamente, este desafío podría no ser posible en todos los idiomas
El comando Unix
xxd -b <file name>
imprimirá los binarios de un archivo en la consola (junto con algunas cosas de formato adicionales)Puede usar otras codificaciones que no sean ASCII, como UTF-8, siempre que se sigan todas las demás reglas
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
son los caracteres ASCII imprimibles prohibidos, para cualquier persona que se preocupe. Los caracteres ASCII imprimibles permitidos son" $&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~
[CR]
tiene un bit extraño. Esperaba que WhiteSpace estuviera a salvo, pero desgraciadamente [TAB]
. Si quieres ir a la vieja escuela, EBCDIC te da tres vocales.