Функции работы с битовыми строками
Битовые операции выполняются с помощью четырех функций: $ВIТ, $BITCOUNT, $BITFIND, и $BITLOGIC. При этом битовая строка – это последовательность состояний «да/нет» (символически изображается в виде последовательности единиц и нулей), например, (0, 1, 0, 0, 1, 1, 1, 0).
Функция $BIT
Функция $BIT создает битовую строку или устанавливает значение бита в определенной позиции. Двухаргументный вариант $BIT(bitstring, position) извлекает значение бита в позиции, заданной position. Трехаргументный вариант $BIT(bitstring, position, bitvalue) возвращает текущее значение бита, заданного position, и устанавливает его в новое значение, заданное bitvalue.
Функция $BIT также может стоять слева от знака равенства. Этот вариант может быть использован для создания битовой строки или изменения отдельного бита в определенной позиции.
Set а = "" Set $ВIТ(а, 4) = 1 |
Здесь переменная инициализируется пустой строкой и затем четвертый бит устанавливается в 1. После этого значение битовой строки будет [0, 0, 0, 1].
Функция $BITCOUNT
Функция $BITCOUNT также существует в двух формах. В форме с одним аргументом $BITCOUNT(bitstring) она возвращает число битов в битовой строке. Если в качестве второго аргумента задано битовое значение (0 или 1), подсчитывается число бит заданного значения.$BITFIND
Функция $BITFIND
Третья функция работы с битовыми строками,$BITFIND , ищет заданное значение бита и возвращает его позицию в строке. Например, если а = [0, 0, 1, 1, 0], тогда $BITFIND(a, 1) вернет число 3, поскольку бит со значением 1 первый раз встречается в третьей позиции. Добавление третьего аргумента задает позицию, начиная с которой необходимо начинать поиск.
В предыдущем примере $BITFIND (а, 0, 3) вернет значение 5, поскольку бит со значением 0 встречается снова только на 5 позиции.
Функция $BITLOGIC
Функция $BITLOGIC выполняет побитовые логические операции с битовой строкой.
Оператор | Символ оператора |
И (AND) | & |
ИЛИ (OR) | I |
исключающее ИЛИ | ^ |
НЕ (NOT) | ~ |
Общая форма функции $BITLOGIC:
$BITLOGIC(bitstring_expression[, length]) |
Здесь bitstring_expression представляет собой битовое выражение, составленное с помощью операторов, представленных в таблице 18. Таким образом, выражение может состоять либо из последовательности операторов И и ИЛИ (например, «А & В | С»), либо из одного оператора НЕ (например, «~А»). В этом случае в результате получается строка бит, содержащая инвертированные значения бит строки А. В первом варианте можно использовать скобки для задания последовательности операций, например, «(А & В) | (В & С)».
Второй аргумент, length, задает длину результирующей битовой строки.
Допустим, битовые строки А и В представлены следующим образом:
А = [1, 1], В = [0, 1] |
Тогда:
Set C = $BITLOGIC(~B) // С будет равно [1, 0] Set C = $BITLOGIC(A & B) // С будет равно [0, 1] Set C = $BITLOGIC(A | B) // С будет равно [1, 1] |
Другая функция, «$ZBOOLEAN(arg1, arg2, bit - op)», использует байтовое представление символов и позволяет выполнять битовые логические операции, заданные третьим аргументом, между первыми двумя. Имя функции $ZBOOLEAN не может быть сокращено.
Обзор Z-функций
Ввиду того, что количество чрезвычайно важных Z-функций весьма велико, мы ограничимся лишь их кратким описанием.
Дата добавления: 2016-01-20; просмотров: 737;