Конвертация из 10 системы в 62-х ричную

Автор: Igor Kirsanov

До 36-ричной системы удобно использовать штатную функцию для преобразования из одной системы в другую - base_convert

Если требуется преобразование выше 36-ричной системы счисления, то для работы необходимо определить словарь, т.к. результаты регистрозависимы, например, в шестнадцатеричной нотации, например, 0xff полностью идентично 0xFF

Словарь для 64-ричной системы, это [a-zA-Z0-9]

$dictionary = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

Индекс символа в строке соответствует десятичному значению.

Пример кода


$base = 62;
$input = 2317864864;
$output = '';

while($input > 0){
    $digit = $input % $base;
    $output = $dictionary[$digit].$output;
    $input = (int) ($input / $base);
}

Таблица для проверки (62-ичное число => 10-ичное число)

BOOzE => 558835242
CD0jN => 570796787
CNBxQ => 573323166
D2hqR => 576820773
CKlRX => 572547925
CuRPO => 568857552
CtfO1 => 568473041
CFCkz => 571419563
CRFSE => 574293144
BRh6j => 559421555