Khi chơi gôn, sẽ có lúc bạn cần Hex Dump của mã, thường là do bạn đã sử dụng các ký tự không thể in được. Vì vậy, tại sao không thực hiện một chương trình mà Hex Dumps chính nó?
Các thách thức
Thách thức này là, không có đầu vào, đưa ra kết xuất Hex của mã nguồn theo định dạng sau:
0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Hoặc, ví dụ, nếu chương trình của bạn là print("SomeString"):rep(123)
0000: 70 72 69 6e 74 28 5c 22 53 6f 6d 65 53 74 72 69 print("SomeStrin
0010: 6e 67 5c 22 29 3a 72 65 70 28 31 32 33 29 g"):rep(123)
Cụ thể
Kết xuất hex được chia thành các hàng gồm ba phần, mỗi hàng đại diện cho 16 byte mã nguồn của bạn.
Phần đầu tiên là địa chỉ bộ nhớ. Nó chỉ định nơi hàng hiện tại bắt đầu trong mã của bạn. Được viết dưới dạng số thập lục phân 2 Byte, theo sau là a :
, sau đó là khoảng trắng.
Thứ hai, là chính Hex Dump. Đây là 16 byte Mã nguồn của bạn, được viết ở dạng thập lục phân cách nhau bởi khoảng trắng. Đây phải là một biểu diễn byte chính xác bằng cách sử dụng mã hóa mã của bạn.
Cuối cùng, sau một khoảng cách hai không gian, là chính mã. Đây chỉ đơn giản là 16 ký tự mã của bạn, với các ký tự Không in được viết dưới dạng.
Ghi chú
- Đây là một thách thức về quine , vì vậy Quy tắc tiêu chuẩn được áp dụng.
- Và đây cũng là một thử thách chơi gôn , vì vậy, lỗ hổng tiêu chuẩn được áp dụng.
- Như trong ví dụ thứ hai, không viết byte sau EOF, thay vào đó hãy sử dụng khoảng trắng.
- Trailing khoảng trắng là tốt.
- Inbuilts to Hex dump, nếu bạn tình cờ có một định dạng cụ thể này, không bị cấm nhưng được tán thành.
- Các ký tự không in được đề cập đến bất kỳ ký tự nào, được biểu thị dưới dạng một byte đơn, không thể được biểu diễn dưới dạng một glyph cách nhau. Đối với UTF-8, điều này có nghĩa là
0-31
,128-255
. Đối với Jelly Codepage , vì tất cả các ký tự có thể được biểu diễn dưới dạng glyph cách đều nhau, không có ký tự Không in được.
xxd
nó?