Kịch bản
Gần đây bạn đã nhận thấy một số hành vi lạ với trình soạn thảo văn bản yêu thích của bạn. Lúc đầu, dường như nó đã bỏ qua các ký tự ngẫu nhiên trong mã của bạn khi ghi vào đĩa. Sau một thời gian bạn nhận thấy một mô hình; các ký tự có giá trị ASCII lẻ đã bị bỏ qua. Khi kiểm tra thêm, bạn phát hiện ra rằng bạn chỉ có thể ghi vào tệp đúng nếu mỗi bit thứ tám bằng không. Bây giờ bạn cần phải biết nếu các tập tin có giá trị của bạn đã bị ảnh hưởng bởi lỗi lạ này.
Nhiệm vụ
Bạn phải viết một chương trình hoàn chỉnh để xác định xem một tệp có chứa bất kỳ byte lẻ nào không (chứng minh rằng nó không được sửa chữa). Nhưng do trình soạn thảo văn bản của bạn, bạn không thể viết bất kỳ byte lẻ nào trong mã nguồn của mình. Bạn có thể giả sử bất kỳ mã hóa có sẵn nào cho đầu vào, tuy nhiên bạn vẫn phải kiểm tra từng byte riêng lẻ, không chỉ các ký tự.
Đầu vào
Chương trình của bạn sẽ lấy nội dung hoặc đường dẫn đến một tệp từ stdin hoặc dòng lệnh.
Đầu ra
Chương trình của bạn sẽ xuất ra thiết bị xuất chuẩn một giá trị trung thực nếu tệp đã cho chứa một byte lẻ hoặc sai lệch nếu mỗi bit thứ tám bằng không.
Tiêu chí
Đây là mã golf, chương trình ngắn nhất hoàn thành nhiệm vụ sẽ thắng. Để là một đệ trình hợp lệ, mỗi bit thứ tám trong mã nguồn tệp phải là một số không. Tôi muốn giới thiệu bao gồm một bản sao nhị phân của mã nguồn trong bài gửi của bạn.
Tiêu chuẩn áp dụng.
Các trường hợp thử nghiệm
(Trong mã hóa ASCII) Đầu vào:
"$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~
Output:
falsy
Input:
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
Output:
truthy
Input:
LOREMIPSVMDOLORSITAMETCONSECTETVRADIPISCINGELITSEDDOEIVSMODTEMPORINCIDIDVNTVTLABOREETDOLOREMAGNAALIQVA
VTENIMADMINIMVENIAMQVISNOSTRVDEXERCITATIONVLLAMCOLABORISNISIVTALIQVIPEXEACOMMODOCONSEQVAT
DVISAVTEIRVREDOLORINREPREHENDERITINVOLVPTATEVELITESSECILLVMDOLOREEVFVGIATNVLLAPARIATVR
EXCEPTEVRSINTOCCAECATCVPIDATATNONPROIDENTSVNTINCVLPAQVIOFFICIADESERVNTMOLLITANIMIDESTLABORVM
Output:
truthy
Lời khuyên
Chọn ngôn ngữ một cách khôn ngoan Thử thách này có thể không thể thực hiện được trong mọi ngôn ngữ
Lệnh Unix
xxd -b <file name>
sẽ in các tệp nhị phân của tệp lên bàn điều khiển (cùng với một số công cụ định dạng bổ sung)Bạn có thể sử dụng các bảng mã khác ngoài ASCII, chẳng hạn như UTF-8 miễn là tuân theo tất cả các quy tắc khác
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
là các ký tự ASCII có thể in bị cấm, cho bất cứ ai quan tâm. Các ký tự ASCII có thể in được cho phép là" $&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~
[CR]
có bit lẻ. Tôi đã hy vọng rằng WhiteSpace an toàn, nhưng than ôi [TAB]
. Nếu bạn muốn đi học cũ, EBCDIC cung cấp cho bạn ba nguyên âm.