Возникла недавно задача, связанная с конвертацией между различными позиционными системами счисления.
В качестве реального применение обычно выступают сервисы для сокращения URL, использующие системы base36/base62 или, например, хранение большого количества огромных чисел в том же base62 для экономии памяти.
Поискав среди существующих решений, понял, что ни одно из них не устраивает, в связи с чем, решил подготовить библиотеку-компонент для различных математических задач в фреймворке.
Получилась AzaMath — библиотека для конвертации между системами счисления (включая кастомные) + удобная арифметика произвольной точности.
Читать полностью »