Waktu yang tepat untuk pertanyaan ini. @isaacg baru saja menambahkan fitur baru hari ini, yang memungkinkan untuk mempersingkat nomor seperti itu.
Teknik dasar adalah untuk mengkonversi nomor ke basis 256 dan mengubahnya menjadi karakter. Anda dapat melakukan ini menggunakan kode ++NsCMjQ256N
. Anda kemudian dapat menggunakan string yang dihasilkan dalam kombinasi dengan C
, yang melakukan kebalikannya (konversikan karakter ke int dan interpretasikan hasilnya sebagai nomor basis-256). Jadi Anda mendapatkan 13 chars: C"2ìÙ½}ü¶d"
. Beberapa karakter tidak patut ditulis.
Tetapi perhatikan bahwa saya mengatakan 13 CHAR, bukan byte. Jika saya menyalin karakter dan menghitung dengan https://mothereff.in/byte-counter , dikatakan 13 karakter dan 18 byte. Ini karena pengkodean karakter karakter, yang secara default adalah UTF-8. Dan UTF-8 hanya memungkinkan 2 ^ 7 karakter 1 byte yang berbeda. Setiap char c
dengan ord(c) > 127
benar-benar disimpan menggunakan dua byte, bukan satu.
Dan inilah fitur baru @ isaacg yang mulai dimainkan. Dia mengubah format kode standar dari UTF-8 ke iso-8859-1. iso-8859 dapat mewakili 256 karakter dengan hanya 1 byte. Jadi sekarang Anda benar-benar dapat mencapai 13 BYTES. Ini hanya mungkin dengan kompiler standar , ini tidak bekerja di kompiler online.
Pertama Anda ingin mengkonversi nomor ke hex-nilai dengan menggunakan script ini: jdm.[2.Hd"0"jQ256
. Ini memberimu 12 32 ec d9 bd 07 7d fc b6 64
. Setelah itu salin nomor-nomor itu ke file-kode Anda menggunakan hex-editor (mis. Hexedit untuk linux).
Memperhatikan:
- Jelas Anda menghapus
"
di bagian akhir, jika string adalah bagian terakhir dari kode.
- Ini hanya berfungsi jika tidak ada
34
(byte 22
) dalam representasi basis-256 dari nomor Anda, karena ini adalah "
char dan akan mengakhiri string. Lolos bekerja meskipun ( 5C 22
).
- Btw, ketika Anda membuka file dengan hex-editor Anda mungkin akan melihat byte
0A
atau 0d 0a
di akhir, yang dapat Anda hapus. Ini hanya menunjukkan akhir dari garis.
00
. Selain itu,\
byte5c
, mungkin atau mungkin tidak perlu diloloskan dengan `` lainnya, tergantung pada byte setelahnya.