DecToBase

From SunFlurry wiki
Revision as of 08:50, 7 February 2021 by Admin (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  DecToBase (Функции работы с числами)
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Аргументы не строка и не число, недостаточная длина словаря
Визуальность:Нет

Функция преобразовывает числовой аргумент в систему счисления по основанию второго аргумента. Для преобразования можно использовать словарь, представляеющий собой строку, каждый знак которой будет отвечать за цифру при переводе. По умолчанию, используется следующий словарь 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz, к примеру, для 16-ричной системы (основание 16), используются первые 16 символов этого словаря (0123456789ABCDEF). Словарь по умолчанию дает возможность преобразования чисел в основание с максимальным значением 62. Знак числа не участвует в преобразовании и сохраняется в результирующей строке. Максимальное число, которое можно преобразовать (64-битное число без знака) -- 18,446,744,073,709,551,615 (см. Числа).

Синтаксис

DecToBase(<Число (STRING,INT)>,<Основание (STRING,INT)>,<Словарь (STRING)>):<Результат преобразования (STRING)>

Аргументы

  • <Число (STRING,INT)> - Числовое значение (или его текстовое представление), которое необходимо преобразовать.
  • <Основание (STRING,INT)> - Числовое значение (или его текстовое представление), которое представляет собой основание преобразования. Для двоичного преобразования, к примеру, этот аргумент должен иметь значение 2. Важное: если основание представлено отрицательным числом, будет использовано его абсолютная величина, и первый аргумент будет считаться числом без знака. Система не работает с беззнаковыми числами, поэтому верхний бит 64-битного числа представляет собой знак. Задавая отрицательное основание, можно обойти это ограничение, верхний бит во входящем числе будет использоваться в данных.
  • <Словарь (STRING)> - (необязательный аргумент) Словарь преобразования. Для обычных оснований (2,8,16) имеет смысл использовать словать по умолчанию.

Возвращаемое значение

Результат функции будет строкой.

Примеры

//Будет выведено "11101110001010001111010101"
Message(DecToBase(62432213,2));

//Будет выведено "186A0"
Message(DecToBase(100000,16));

//Будет выведено "FFFFFFFFFFFFFFFF" (отрицательное основание используется для представления беззнаковых чисел, в числе -1 все 64 бита установлены)
Message(DecToBase(-1,-16));

//Будет выведено "-BCPNB"
Message(DecToBase(-77777,16,"ABCDEFGHIJKLMNOP"));