Описание функции


Vast

Преобразование числа из одной системы счисления в другую.

Vast (source$, srcBase.i, destBase.i, groupSize.i=0, srcSymbols$=#StdSymbols$, destSymbols$=#StdSymbols$)

Параметры

source$ Исходное целое число, в виде строки, может иметь префиксы "+" и "-" и разделительные пробелы. Здесь могут быть символы указанные в параметре srcSymbols$. Также число может выглядеть как {1,5,8} или -{1,5,8}
srcBase.i База исходного числа, например 2 или 10 или 16 или другое
    2 - для двоичного (01)
    10 - для десятиричного (0-9)
    16 - для шестнадцатеричного (0-9, A-F)
destBase.i База числа, в которое необходимо преобразовать, например 2 или 10 или 16 или другое
    2 - для двоичного (01)
    10 - для десятиричного (0-9)
    16 - для шестнадцатеричного (0-9, A-F)
groupSize.i [необязательный] Размер группы, например при 3 число "16000" будет записано как "16 000". По умолчанию 0, то есть разделения не будет. При -1 возвращается список в виде {1,5,8}
srcSymbols$ [необязательный] Набор символов исходного числа. По умолчанию 0-9, A-Z. При этом если выбрана база 10 или 16, то эта строка будет обрезана до указанной длины и набор символов будет соответствовать стандартным значениям для соответствующей базы. Задав свои символы можно получить число любой базы выраженное любыми символами.
destSymbols$ [необязательный] Набор символов, в которое необходимо преобразовать. Правила такие же как для srcSymbols$.

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

Успех:Возвращает число в виде строки.
Ошибка:Возвращает "" пустую строку

Пример

; Little John
; https://www.purebasic.fr/english/viewtopic.php?p=459536#p459536

XIncludeFile "Radi.pbi"
UseModule Radi

; Секунды во время: 1 час 5 минут 8 секунд
Debug Vast("3908",10, 60, -1) ; = {1,5,8}
; Время в секунды
Debug Vast("{1,5,8}",60, 10) ; = 3908
; Шестнадцатеричное в десятичное с разделением групп по 3 символа
Debug Vast(UCase("ffffff"), 16, 10, 3) ; = 16 777 215
; Шестнадцатеричное в двоичное с разделением групп по 4 символа
Debug Vast(UCase("ac8d"), 16, 2, 4) ; = 1010 1100 1000 1101
; Двоичное в шестнадцатеричное
Debug Vast("1101 0010", 2, 16) ; = D2
; Десятичное в шестнадцатеричное в виде списка
Debug Vast("16 777 215", 10, 16, -1) ; = {15,15,15,15,15,15}
; Цвет RGB в десятичное
Debug Vast("{255,255,255}", $FF + 1, 10) ; = 16777215
; Цвет RGB в шестнадцатеричное
Debug Hex(Val(Vast("{255,255,255}", $FF + 1, 10))) ; = FFFFFF
; Десятичное в число с базой 36 и набором 0-9, A-Z
Debug Vast("9382716",10, 36, 0) ; = 5L3R0