7
การเข้ารหัส Base85
ความท้าทาย เขียนโปรแกรมที่สามารถรับอินพุตของสตริงบรรทัดเดียวที่มีอักขระที่พิมพ์ได้ใด ๆ ของ ASCII และส่งออกสตริงเดียวกันที่เข้ารหัสในBase85 (โดยใช้การประชุมแบบ big-endian) คุณสามารถสันนิษฐานได้ว่าข้อมูลที่ป้อนจะมีค่า≤ 100 ตัวอักษรเสมอ คำแนะนำเกี่ยวกับ Base85 สี่ octets จะถูกเข้ารหัสเป็น (ปกติ) ห้าตัวอักษร Base85 อักขระ Base85 มีตั้งแต่!ถึงu(ASCII 33 - 117) และz(ASCII 122) ในการเข้ารหัสคุณดำเนินการหารอย่างต่อเนื่องโดย 85 ในสี่ octets (หมายเลข 32 บิต) และเพิ่ม 33 ไปยังส่วนที่เหลือ (หลังแต่ละส่วน) เพื่อรับอักขระ ASCII สำหรับค่าที่เข้ารหัส ตัวอย่างเช่นแอปพลิเคชันแรกของกระบวนการนี้สร้างอักขระที่ถูกต้องที่สุดในบล็อกที่เข้ารหัส ถ้าชุดของสี่ octets มีเพียงไบต์ null พวกเขาจะถูกเข้ารหัสเป็นแทนz!!!!! หากบล็อกสุดท้ายสั้นกว่าสี่อ็อกเท็ตมันจะเต็มไปด้วยไบต์ว่าง หลังจากการเข้ารหัสอักขระจำนวนเดียวกันที่ถูกเพิ่มเป็นช่องว่างภายในจะถูกลบออกจากจุดสิ้นสุดของเอาต์พุต ค่าการเข้ารหัสควรจะนำหน้าด้วยและตามมาด้วย<~~> …