Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VisualFoxPro.doc
Скачиваний:
15
Добавлен:
01.07.2025
Размер:
11 Мб
Скачать
☆

Битовые функции

Функция

Описание / примеры

BITAND(nExpression1, nExpression2, … nExpression26)

Возвращает результат побитового И двух или более выражений типа Numeric

x = 3 && 0011 y = 6 && 0110 ? Bitand(x, y) && Напечатает: 2 (0010)

BITAND(BinaryExpression1, BinaryExpression2, ..., BinaryExpression26)

То же для выражений типа Varbinary или Blob. Если выражения имеют разную длину, то более длины выражений выравниваются за счет добавления в конец более короткого выражения литералов 0h00

BITCLEAR(nExpression1, nExpression2)

Очищает бит в позиции nExpression2 целого числа nExpression1. Диапазон изменения параметра nExpression2 от 0 до 31

x = 7 && 0111 y = 2 && Позиция очищаемого бита ? Bitclear(x, y) && Напечатает: 3 (0011)

BITCLEAR(BinaryExpression, [, nStartBit [, nBitCount]])

То же для выражения BinaryExpression типа Varbinary или Blob. Параметр nStartBit задает начальный бит для выполнения операции; параметр nBitCount – число бит, участвующих в операции. Если параметры nStartBit и nBitCount опущены, то операция выполняется для всех биты. Если задан только параметр nStartBit, то операция выполняется только для бита с номером nStartBit

? Bitclear(0h616263, 0, 8) && Напечатает: 0h006263

BITLSHIFT(nExpression1, nExpression2)

Возвращает результат левого сдвига битов целого числа nExpression1 на число позиций, заданных nExpression2

x = 5 && 0101 y = 1 && Сдвиг на 1 позицию влево ? Bitlshift(x, y) && Напечатает: 10 (1010)

BITNOT(nExpression)

Возвращает битовое НЕ целочисленного параметра. Для результата справедливо равенство BITNOT(x) + x = –1

x = 5 && 0101 ? Bitnot(x) && Напечатает: –6

BITNOT(BinaryExpression [, nStartBit [, nBitCount]])

То же для выражения типа Varbinary или Blob. Смысл параметров nStartBit и nBitCount см. в описании функции BITCLEAR( )

BITOR(nExpression1, nExpression2, … nExpression26)

Возвращает результат побитового ИЛИ двух или более целочисленных выражений

x = 3 && 0011 y = 6 && 0110 ? Bitor(x, y) && Напечатает: 7 (0111)

BITOR(BinaryExpression1, BinaryExpression2, ..., BinaryExpression26)

То же для параметров типа Varbinary или Blob

BITRSHIFT(nExpression1, nExpression2)

Возвращает результат правого сдвига битов целого числа nExpression1 на число позиций, заданных nExpression2

x = 5 && 0101 y = 1 && Сдвиг на 1 позицию вправо ? Bitrshift(x, y) && Напечатает: 2 (0010)

BITSET(nExpression1, nExpression2)

Устанавливает 1 в бит в позиции nExpression2 целого числа nExpression1. Диапазон изменения параметра nExpression2 от 0 до 31

x = 7 && 0111 y = 3 && Позиция устанавливаемого бита ? Bitset(x, y) && Напечатает: 15 (1111)

BITSET(BinaryExpression [, nStartBit [, nBitCount]])

То же для выражения типа Varbinary или Blob. Смысл параметров nStartBit и nBitCount см. в описании функции BITCLEAR( )

BITTEST(nExpression1, nBitNumber)

Возвращает .T., если бит в позиции nBitNumber целого числа nExpression1 содержит 1. В противном случае возвращает .F. Диапазон изменения параметра nExpression2 от 0 до 31. В примере функция IsEven( ) проверяет 0-й бит параметра nVal и в зависимости от его значения определяет, четно ли число или нет

? IsEven(2) && Напечатает: .T. ? IsEven(3) && Напечатает: .F. function IsEven(nVal) return not Bittest(nVal, 0) endFunc

BITTEST(BinaryExpression, nBitNumber)

То же для выражения типа Varbinary или Blob. В примере выводится двоичное представление латинского символа "a"

bVal = Cast('abc' as Q(3)) for ind = 7 to 0 step –1 ?? Iif(Bittest(bVal, ind), 1, 0) next

Результат: 01100001

BITXOR(nExpression1, nExpression2, … nExpression26)

Возвращает результат побитового исключающего ИЛИ двух или более целочисленных числовых выражений

x = 3 && 0011 y = 6 && 0110 ? Bitxor(x, y) && Напечатает: 5 (0101)

BITXOR(BinaryExpression1, BinaryExpression2, ..., BinaryExpression26)

То же для параметров типа Varbinary или Blob. Длина параметров выравнивается (см. описание функции BITAND( ))

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]