Функции преобразования

Функции преобразования переводят некоторые значения из одной формы представления в другую. Двойки в именах функций являются порождением игры английских слов TWO (два) и ТО (в), которые на слух звучат практически одинаково. Буквы в именах функций означают:

B - Binary      - двоичное;         
C - Character   - литера;           
D - Decimal     - десятичное;       
X - heXadecimal - шестнадцатеричное.

Поэтому, например С2В читается как "Character(s) To Binary" - ASCII-значение (значения) литер(ы) преобразовать в двоичное число. Следует помнить, что ARexx хранит абсолютно все данные в виде строк.


B2C()
str = B2C(<двоичное_число>)

Дает строку, соответствующую ASCII-значению двоичного числа. Между границами отдельных байт можно вставлять пробелы. Примеры:

say В2С(1000001)            ==>  А
say В2С(1000010 01000001)   ==>  ВА

C2B()
bin = C2B(<строка>)

Возвращает строку, являющуюся по сути двоичным числом. Двоичные представления составляющих строку литер при этом "сцепляются" друг с другом. Незначащие нули не отбрасываются. Пример:

say С2В('АВ')   =>  0100000101000010

C2D()
dec = C2D(<строка>,[,<число_литер>])

Возвращает строку, являющуюся по сути десятичным числом. В случае, если исходная строка содержит единственную литеру, возвращается ее ASCII-значение. В противном случае строка вначале переводится в двоичную форму (как в С2В), затем это двоичное число переводится в десятичное. Исходная строка должна иметь не более 4-х литер. Дополнительный параметр "число_литер", который может принимать значения от 1 до 4, позволяет обработать не всю исходную строку, а только несколько первых литер в соответствии со значением этого параметра. Если в исходной строке литер меньше, нежели значение параметра "число_литер", то строка дополняется необходимым количеством нулей. Примеры:

say C2D('A')        ==>  65
say C2D('AB')       ==>  16706
say C2D('ABC', 2}   ==>  16706

C2X()
hex = C2X(<строка>)

Возвращает строку, являющуюся по сути шестнадцатеричным числом. Шестнадцатеричные представления составляющих строку литер при этом "сцепляются" друг с другом. Пример:

say С2Х('АВ')   ==> 4142

D2C()
str = D2C(<десятичное_число>[,<число_литер>])

Преобразует десятичное число в соответствующую ему строку. Дополнительный параметр "число_литер" может вызвать или обрезку строки до нужной длины, или дополнение ее незначащими нулями. Пример:

say D2C(65)   ==>  А

D2X()
hex = D2X(<десятичное_число>[,<число_литер>])

Преобразует десятичное число в шестнадцатеричное. Дополнительный параметр "число_литер" может вызвать или обрезку полученной строки, представляющей шестнадцатеричное число, до нужной длины, либо дополнение этой строки незначащими нулями. Пример:

say D2X(65)   ==>  41

X2C()
str = X2C(<шестнадцатеричное_число>])

Возвращает строку, являющуюся ASCII-представлением шестнадцатеричного числа. В случае нечетного количества литер в исходной строке, являющейся представлением шестнадцатеричного числа, к строке слева будет автоматически добавлен ноль, что позволит правильно определять границы отдельных байтов. Пример:

say X2C('414243')   ==>  ABC

X2D()
str = X2D(<шестнадцатеричное_число>[,<число_литер>])

Преобразует шестнадцатеричное число в десятичное. Текущая установка NUMERIC DIGITS определяет максимальную длину числа, которое может быть возвращено без генерации сообщения об ошибке. В случае нечётного количества литер в исходной строке, являющейся представлением шестнадцатеричного числа, к строке слева будет автоматически добавлен ноль, что позволит правильно определять границы отдельных байтов. Дополнительный параметр "число_литер" может вызвать либо обрезку до нужной длины полученной строки, представляющей десятичное число, либо дополнение этой строки незначащими нулями. Пример:

say X2D(ab9f)   ==>  43935

Сайт создан в системе uCoz