Đưa ra một đầu vào của một chuỗi có các byte có thể ở dạng nhị phân, bát phân hoặc hex, xuất ra tương đương ASCII của chuỗi.
Đầu vào sẽ được cung cấp theo định dạng sau, ví dụ:
501200100001147
đại diện
0x50 0o120 0b01000011 0x47
tương đương (trong ASCII) với
PPCG
Nhị phân, bát phân và hex sẽ luôn được cung cấp với 8, 3 và 2 chữ số tương ứng.
Đối với mục đích của thách thức này, chỉ hỗ trợ ASCII có thể in được. Đây là phạm vi 32..126
bao gồm. Do đó, không thể có sự mơ hồ. Lưu ý rằng
Một chuỗi đại diện cho nhị phân khi và chỉ khi nó bắt đầu bằng a
0
và ký tự thứ hai của nó là a0
hoặc a1
. Tất cả các ký tự ASCII có thể in đều có bit cao ở dạng nhị phân (bắt đầu bằng a0
) và không có ký tự nào bắt đầu bằng00
hoặc01
ở dạng hex hoặc bát phân.Với cách thức nhị phân, lưu ý rằng tất cả các ký tự ASCII có thể in bắt đầu bằng
2
-7
trong hex và0
-1
trong bát phân. Do đó, có thể phân biệt rõ ràng giữa hex và bát phân là tốt.
Bạn có thể giả sử rằng đầu vào hex được cung cấp dưới dạng chữ thường hoặc chữ hoa, tùy theo cái nào thuận tiện hơn.
Regex làm cho phần phân tích cú pháp của thử thách bán tầm thường. Tôi không muốn cấm sử dụng regex hoàn toàn, nhưng nếu bạn có giải pháp không phải regex lâu hơn đối tác sử dụng regex của nó, hãy thoải mái đăng nó cùng với câu trả lời "thực sự", vì tôi sẽ quan tâm để xem nó là tốt. :)
Vì đây là mã golf , mã ngắn nhất tính bằng byte sẽ giành chiến thắng.
Các trường hợp thử nghiệm:
In Out
-----------------------------------
501200100001147 | PPCG
5C01101111100 | \o@
313206306400110101 | 12345
2A200530402C | * + ,
0011111100111111 | ??
<empty string> | <empty string>
0[01]{7}
thay vì0[01].{6}
.