X2D (Шестнадцатеричное в десятичное)
Функция X2D преобразует шестнадцатеричную-строку (т.е. строку, состоящую из шестнадцатеричных символов) в эквивалентную строку, содержащую десятичное число. Если результат не может быть представлен в виде целого числа, то происходит ошибка. Результат не может состоять из большего количества цифр, чем это установлено в текущем назначении NUMERIC DIGITS.
При желании для читабельности в шестнадцатеричную-строку можно добавить пробелы (только на границе байта, а не начальные или конечные); в процессе преобразования они игнорируются.
Если в качестве шестнадцатеричной-строки указана пустая строка, то функция X2D возвращает значение 0.
Если значение n не указано, то шестнадцатеричная-строка обрабатывается как двоичное число без знака.
Ниже приведено несколько примеров: X2D('0E') -> 14 X2D('81') -> 129 X2D('F81') -> 3969 X2D('FF81') -> 65409 X2D('c6 f0'X) -> 240
Если значение n указано, то данная последовательность шестнадцатеричных цифр слева дополняется нулями (отметим, что без знакового разряда) или усекается слева до n символов. Результирующая строка, состоящая из n шестнадцатеричных цифр, рассматривается как двоичное число со знаком - положительное, если старший левый бит сброшен, и отрицательное (в форме дополнения до двоичного числа два), если старший левый бит установлен. Если значение n равно нулю, то функция X2D в качестве результата возвращает 0.
Ниже приведено несколько примеров: X2D('81',2) -> -127 X2D('81',4) -> 129 X2D('F081',4) -> -3967 X2D('F081',3) -> 129 X2D('F081',2) -> -127 X2D('F081',1) -> 1 X2D('0031',0) -> 0