Определяет, установлен ли указанный бит в значении типа Numeric, Varbinary, или Blob в 1. В синтаксисе приведен вариант для случая числового и двоичного типа данных.

Примечание:
Ести указанное выражение не принадлежит к целому типу (integer), оно будет сначала преобразовано к этому типу.

BITTEST(nNumericExpression1, nNumericExpression2)
BITTEST(BinaryExpression, nBitNumber)

Параметры

nNumericExpression1

Указывает выражение типа Numeric для проверки в его значении указанного бита.
nNumericExpression2

Указывает позицию бита для проверки в nExpression1. nExpression2 может находиться в пределах от 0 до 31, при этом 0 обозначает самый правый бит (Тип Integer имеет длину 32 бита, а сами биты нумеруются от 0 до 31 справа налево - прим.переводчика).
BinaryExpression

Указывает выражение типа Varbinary или Blob для проверки указанного бита.
nBitNumber

Указывает бит в qExpression, причем биты нумеруются, начиная с 0 (и справа налево - прим.переводчика). Если будет указан номер бита nBitNumber, который выйдет за пределы длины qExpression, Visual FoxPro выдаст ошибку.

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

Логическое. Функция BITTEST( ) вызвращает Истинно (.T.), если указанный бит установлен в 1; в противном случае она возвращает Ложно (.F.).

Пример

В следующем примере функция BITTEST( ) используется с тем, чтобы определить, являются ли целые числа четными. Если целое число четное, функция IsEven возвращает Истинно (.T.); в противном случее она возвращает Ложно (.F.).

Прим.переводчика: Слово even в переводе с английского языка означает "четный"; таким образом наименование функции IsEven можно перевести как "ЧетныйЛи?".

  Скопировать код
CLEAR
? '2 even? '
?? IsEven(2) && Четный, возвращается .T.
? '3 even? '
?? IsEven(3) && Не четный, возвращается .F.
? '0 even? '
?? IsEven(0) && Четный, возвращается .T.
? '-13 even? '
?? IsEven(-13) && Не четный, возвращается .F.

Function IsEven
PARAMETER nInteger
RETURN NOT BITTEST(nInteger, 0)

См.также