Преимущество гексагона в том, что разбиение 8-битного байта на две равные половины - это самая простая вещь, которую вы можете сделать, чтобы сопоставить байт с печатными символами ASCII. Более эффективные методы рассматривают несколько байтов как блок:
Base-64 использует 64 символа ASCII для представления 6 битов одновременно. Каждые 3 байта (то есть 24 бита) разбиваются на 4 6-битовых base-64 цифры, где "цифры":
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
(и если ввод не кратен длине 3 байта, для дополнения в конце используется 65-й символ "=
"). Обратите внимание, что в некоторых вариантах формы base-64 используются разные символы для последних двух «цифр».
Ascii85 - это другое представление, которое несколько менее известно, но обычно используется: это часто способ, которым двоичные данные кодируются в файлах PostScript и PDF. При этом каждые 4 байта (с прямым порядком байтов) рассматриваются как целое число без знака, которое представляется как 5-значное число в базе 85, причем каждая цифра в базе 85 кодируется в виде кода ASCII 33 + n (то есть "!
" для 0 , до "u
" для 84) - плюс особый случай, когда можно использовать один символ "z
" (вместо "!!!!!
") для представления 4 нулевых байтов.
(Почему 85? Потому что 84 5 <2 <sup>32 <85 <sup>5 .)