В предыдущей статье мы рассмотрели кодирование u128 в base62, теперь реализуем и оптимизируем обратную операцию декодирования u128 из base62, это может понадобиться, например, для более компактного хранения в памяти или в базе данных.
Чтобы понять какие оптимизации можно применить, начнем с простой, очевидной реализации.
В процессе работы над своим приложением для заметок, когда я дошел до сохранения данных в базу данных я стал использовать для идентификации записей uuid4 идентификаторы, которые обычно выглядят примерно так, когда представлены в виде строки:
32dca18531a1435480461f99837a5b1d
По некоторым причинам использовать uuid мне не очень нравилось: это довольно длинная строка из 32 символов, а мне надо будет иногда показывать ее пользователям, 6 бит в uuid4 не используются, это константы, расточительно.