2014-02-21 4 views
3

Мне нужно идентифицировать сущность с использованием строки длиной 12 символов, содержащей только цифры и буквы (без учета регистра), и я хочу сжать максимальное количество возможных значений ключа.Оптимальное строковое представление двоичного кода

I.E. JH45KJ2H2313

Я знаю, что могу использовать шестнадцатеричное кодирование (0-9, AF, 4 бит на char => 2^48 значений) Я думаю, что мне нужно исключить base64, поскольку он включает в себя 2 дополнительных символа (+ и/обычно).

Я думаю, что есть лучший способ использовать пространство. То есть если 1 использовать 0-9 + AZ, я могу хранить 36 значений ~ 4 бит в символе.

Есть ли стандарт кодирования, или мне нужно реализовать кодирование/декодирование самостоятельно?

+1

См. Http://codereview.stackexchange.com/questions/14084/base-36-encoding-of-a-byte-array – Rotem

+1

И http://stackoverflow.com/questions/7398465/how-to-convert -a-байтовый массив MD5-хэш-в-а-строка-36-символы – Rotem

ответ

1

Краткий ответ: в BCL нет реализации Base36. Вы должны сделать это самостоятельно или получить его из другого места.

Смежные вопросы