เมื่อการตีกอล์ฟมีบางครั้งที่คุณต้องการ Hex Dump ของรหัสของคุณซึ่งโดยปกติจะเป็นเพราะคุณใช้อักขระที่ไม่สามารถพิมพ์ได้ ดังนั้นทำไมไม่สร้างโปรแกรมที่ Hex Dumps?
ความท้าทาย
ความท้าทายนี้มีไว้เพื่อไม่ให้อินพุตเอาต์พุตเอาต์พุต Hex Dump ของซอร์สโค้ดของคุณในรูปแบบต่อไปนี้:
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 ................
หรือตัวอย่างเช่นหากโปรแกรมของคุณเป็น 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)
ข้อมูลจำเพาะ
การถ่ายโอนข้อมูลเลขฐานสิบหกถูกแบ่งออกเป็นแถวสามส่วนแต่ละแถวแสดงถึง 16 ไบต์ของรหัสที่มาของคุณ
ส่วนแรกคือที่อยู่หน่วยความจำ มันระบุที่แถวปัจจุบันเริ่มต้นในรหัสของคุณ เขียนเป็นตัวเลขฐานสิบหก 2 ไบต์ตามด้วย a :
แล้วเว้นวรรค
ที่สองคือการถ่ายโอนข้อมูล Hex ตัวเอง นี่คือ 16 ไบต์ของรหัสที่มาของคุณเขียนในรูปแบบเลขฐานสิบหกคั่นด้วยช่องว่าง นี่ควรเป็นการนำเสนอแบบไบต์ที่ถูกต้องโดยใช้การเข้ารหัสของรหัสของคุณ
สุดท้ายหลังจากช่องว่างสองช่องว่างก็คือรหัสนั่นเอง นี่เป็นเพียง 16 ตัวอักษรของรหัสของคุณด้วยตัวอักษรที่พิมพ์ไม่ได้.
หมายเหตุ
- นี้เป็นควินท้าทายดังนั้นมาตรฐานควินกฎใช้
- และนี่คือรหัสกอล์ฟท้าทายเกินไปดังนั้นมาตรฐานช่องโหว่ใช้
- ดังที่แสดงในตัวอย่างที่สองห้ามเขียนไบต์หลัง EOF ให้ใช้ช่องว่างแทน
- ช่องว่างต่อท้ายเป็นเรื่องปกติ
- Inbuilts to Hex dump หากคุณมีรูปแบบเฉพาะในรูปแบบนี้จะไม่ถูกแบน แต่จะขมวดคิ้ว
- อักขระที่ไม่สามารถพิมพ์ได้หมายถึงอักขระใด ๆ ที่แสดงเป็นไบต์เดียวเท่านั้นไม่สามารถแสดงเป็นรูปแบบเว้นระยะเดียว สำหรับ UTF-8 ที่นี้หมายถึง,
0-31
128-255
สำหรับJelly Codepageเนื่องจากอักขระทั้งหมดสามารถแสดงเป็นสัญลักษณ์เว้นระยะห่างเดียวจึงไม่มีอักขระที่พิมพ์ไม่ได้
xxd
มันได้หรือไม่