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