Tantangan
Tulis sebuah program yang dapat mengambil input dari string baris tunggal yang mengandung karakter ASCII yang dapat dicetak, dan output string yang sama yang disandikan dalam Base85 (menggunakan konvensi big-endian). Anda dapat mengasumsikan bahwa input akan selalu menjadi ≤ 100 karakter.
Panduan untuk Base85
Empat oktet dikodekan menjadi (biasanya) lima karakter Base85.
Karakter Base85 berkisar dari
!
hinggau
(ASCII 33 - 117) danz
(ASCII 122).Untuk menyandikan, Anda terus melakukan pembagian dengan 85 pada empat oktet (angka 32-bit), dan menambahkan 33 ke sisanya (setelah setiap divisi) untuk mendapatkan karakter ASCII untuk nilai yang disandikan. Misalnya, aplikasi pertama dari proses ini menghasilkan karakter paling kanan di blok yang disandikan.
Jika satu set empat oktet hanya berisi byte nol, mereka dikodekan sebagai
z
gantinya!!!!!
.Jika blok terakhir lebih pendek dari empat oktet, itu diisi dengan byte nol. Setelah penyandian, jumlah karakter yang sama yang ditambahkan sebagai padding, dihilangkan dari akhir output.
Nilai yang disandikan harus didahului oleh
<~
dan diikuti oleh~>
.Nilai yang dikodekan tidak boleh mengandung spasi putih (untuk tantangan ini).
Contohnya
In: easy
Out: <~ARTY*~>
In: test
Out: <~FCfN8~>
In: code golf
Out: <~@rGmh+D5V/Ac~>
In: Programming Puzzles
Out: <~:i^JeEa`g%Bl7Q+:j%)1Ch7Y~>
Cuplikan berikut akan menyandikan input yang diberikan ke Base85.