Двадцати-шестеричная система счисления

Двадцати-шестеричная система счисления (base-26, hexavigesimal) — позиционная система счисления по целочисленному основанию 26. В качестве цифр этой системы счисления используются латинские буквы от A до Z, имеющие значения от 010 до 2510 соответственно.

Используется в тех случаях, когда нужно зашифровать целое число с помощью одних лишь букв латинского алфавита. При обратном шифровании ведущие «нули» не учитываются (AAB = AB).

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

Например, требуется перевести двадцати-шестеричное число XYZ в десятичное. В этом числе 3 цифры. Представим его в виде суммы степеней с основанием 26 и прибавим 1:

XYZ26 =
23·262 + 24·261 + 25·260 =
23·676 + 24·26 + 25·1 =
15548 + 624 + 25 =
1619710

Обратный перевод осуществляется итерационным делением. Например, требуется перевести десятичное число 16197 в двадцати-шестеричное:

Делим число на основание. В остатке получаем первый разряд, в неполном целом – новое число для следующей итерации.

16197 mod 26 = 25 = Z26
16197 div 26 = 622

Повторяем итерацию с числом 622 для второго разряда.

622 mod 26 = 24 = Y26
622 div 26 = 23

И с числом 23 для третьего.

23 mod 26 = 23 = X26
23 div 26 = 0

В итоге, получаем искомое число XYZ.

Похожим образом можно использовать любой алфавит для конвертации. К примеру, для русского алфавита это будет тридцати-троичная система (base-33, tritrigesimal), с той лишь разницей, что основанием будет число 33, а цифрами – русские буквы от А до Я.

Комментарии