У меня есть 128-разрядное число в шестнадцатеричном формате, хранящееся в строке (из md5, безопасность здесь не проблема), которую я бы хотел преобразовать в базовую строку, 36 строк. Если бы это было 64-битное или меньшее число, я бы преобразовал его в 64-битное целое число, а затем использовал алгоритм, который я нашел для преобразования целых чисел в строки базы 36, но это число слишком велико для этого, поэтому я вроде как потеря для того, как подойти к этому. Любые рекомендации будут оценены.Преобразование 128-битной шестнадцатеричной строки в строку base-36
Редактировать: После того, как Роланд Иллиг указал на хлопот о том, чтобы говорить 0/O и 1/l по телефону и не набирать большую плотность данных по гексагону, я думаю, что я могу остаться с шестнадцатеричным. Мне все же интересно, хотя, если существует относительно простой способ преобразования шестнадцатеричной строки произвольной длины в строку base-36.
@eco: Если существует техническое ограничение, ограничивающее вас до 36 символов, вы можете использовать Base-32 вместо этого. Вам нужно будет использовать 26 "цифр" вместо 25, но вы можете использовать битгифтинг. – dan04 2010-11-27 22:44:25
Причина для основания-36 заключается в том, что он легко читается по телефону людям. Base-36 позволил мне использовать все числа и алфавит, которые сделали бы его намного короче, чем просто использование шестнадцатеричного. – eco 2010-11-27 22:57:26