시나리오
최근에 좋아하는 텍스트 편집기를 사용하여 이상한 동작을 감지했습니다. 처음에는 디스크에 쓸 때 코드에서 임의의 문자를 무시하는 것처럼 보였습니다. 잠시 후 패턴을 발견했습니다. ASCII 값이 홀수 인 문자는 무시되었습니다. 추가 검사를 통해 매 8 번째 비트가 0 인 경우에만 파일에 올바르게 쓸 수 있음을 발견했습니다. 이제 귀중한 파일이이 이상한 버그의 영향을 받았는지 알아야합니다.
작업
파일에 홀수 바이트가 포함되어 있는지 판별하는 완전한 프로그램을 작성해야합니다 (손상되지 않음). 그러나 텍스트 편집기로 인해 소스 코드에 홀수 바이트를 작성할 수 없습니다. 기존의 입력 인코딩을 가정 할 수 있지만 문자뿐만 아니라 모든 개별 바이트를 계속 확인해야합니다.
입력
프로그램은 stdin 또는 명령 행에서 파일의 내용 또는 파일 경로를 가져옵니다.
산출
주어진 파일에 홀수 바이트가 포함되어 있으면 프로그램이 정확한 값을 출력하거나 매 8 번째 비트가 0이면 거짓을 출력합니다.
기준
이것은 작업이 완료되는 가장 짧은 프로그램 인 코드 골프입니다. 파일 소스 코드에서 8 비트마다 유효한 제출이 되려면 0이어야합니다. 제출시 소스 코드 바이너리의 사본을 포함시키는 것이 좋습니다.
표준 허점이 적용됩니다.
테스트 사례
(ASCII 인코딩으로) 입력 :
"$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~
Output:
falsy
Input:
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
Output:
truthy
Input:
LOREMIPSVMDOLORSITAMETCONSECTETVRADIPISCINGELITSEDDOEIVSMODTEMPORINCIDIDVNTVTLABOREETDOLOREMAGNAALIQVA
VTENIMADMINIMVENIAMQVISNOSTRVDEXERCITATIONVLLAMCOLABORISNISIVTALIQVIPEXEACOMMODOCONSEQVAT
DVISAVTEIRVREDOLORINREPREHENDERITINVOLVPTATEVELITESSECILLVMDOLOREEVFVGIATNVLLAPARIATVR
EXCEPTEVRSINTOCCAECATCVPIDATATNONPROIDENTSVNTINCVLPAQVIOFFICIADESERVNTMOLLITANIMIDESTLABORVM
Output:
truthy
팁
현명하게 언어를 선택하십시오이 언어가 모든 언어에서 가능한 것은 아닙니다
유닉스 명령
xxd -b <file name>
은 파일의 바이너리를 콘솔에 인쇄합니다 (일부 추가 서식과 함께)다른 모든 규칙을 따르는 한 UTF-8과 같은 ASCII 이외의 다른 인코딩을 사용할 수 있습니다.
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
걱정하는 사람에게는 금지 된 인쇄 가능한 ASCII 문자입니다. 허용되는 인쇄 가능한 ASCII 문자는 다음과 같습니다." $&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~
[CR]
홀수 비트가 있음에 유의하십시오 . 나는 WhiteSpace가 안전하기를 바랐지만, 아아 [TAB]
. 구식 학교에 가고 싶다면 EBCDIC은 세 모음을 제공합니다.