การแปลงฐาน (CJam)
วิธีง่ายๆในการเข้ารหัสสตริง ASCII ที่ไม่ได้เริ่มต้นด้วยไบต์ว่างคือการแปลงจากฐาน 128 เป็นจำนวนเต็มจากนั้นเป็นฐาน 256:
128b256b:c e# Prints encoded string.
128b256b:c`"256b128b:c" e# Prints encoded string with decoder.
สิ่งนี้ใช้ 7 บิตเพื่อเข้ารหัสอักขระ ASCII แต่ละตัว
หากสตริงเดิมประกอบด้วยเพียงตัวอักษรตัวพิมพ์เล็กและไม่เริ่มต้นด้วยaเราสามารถเริ่มต้นด้วยการจับคู่"a...z"
กับ[0 ... 25]
แล้วดำเนินการตามข้างต้น:
'afm26b256b:c e# Prints encoded string.
'afm26b256b:c`"256b26b'af+" e# Prints encoded string with decoder.
ในที่สุดหากสตริงเดิมมีอักขระที่ไม่ซ้ำกันเพียงไม่กี่ตัว (ทั่วไปในศิลปะ ASCII) จะเป็นการดีกว่าที่จะระบุตัวอักษรอย่างชัดเจน
ตัวอย่างเช่น:
" +-/\|"f#6b256b:c e# Prints encoded string.
" +-/\|"f#6b256b:c`"256b6b"" +-/\|"`"f=" e# Prints encoded string with decoder.
ตามกฎของหัวแม่มือคุณต้องการให้อักขระตัวแรกของสตริงต้นฉบับเป็นอักขระตัวที่สองของตัวอักษรตัวอักขระถัดไปที่แตกต่างกันของสายอักขระดั้งเดิมจะเป็นอักขระตัวแรกของตัวอักษรอักขระตัวถัดไปของสตริงดั้งเดิม เป็นตัวละครตัวที่สามของตัวอักษรตัวละครที่แตกต่างกันต่อไปของสายเดิมที่จะเป็นตัวละครที่สี่ของตัวอักษร ฯลฯ
ตัวเข้ารหัสของตัวอย่างล่าสุดทำงานดังนี้:
" +-/\|"f# e# Replace each character by its index in that string.
6b256b e# Convert from base 6 (length of the alphabet) to base 256.
:c e# Cast each digit to character.
ตัวถอดรหัสของตัวอย่างล่าสุดทำงานดังนี้:
256b6b e# Convert from base 256 to base 6.
" +-/\|"f= e# Replace each digit by the corresponding character of the alphabet.