Выполняет побитовую операцию исключающего ИЛИ (exclusive OR) для двух или нескольких операндов следующих типов данных: Numeric, Varbinary, или Blob, и возвращает результат соответствующего типа. Существует два варианта данной функции: для числовых и двоичных данных (смотрите ниже:)

BITXOR(nNumericExpression1, nNumericExpression2 ..., nNumericExpression26)
BITXOR(BinaryExpression1, BinaryExpression2 ..., BinaryExpression26)

Параметры

nNumericExpression1, nNumericExpression2, ... , nNumericExpression26

Определяет список параметиров типа данных Numeric, для которых выполнятся побитовая операция exclusive OR.

BinaryExpression1, BinaryExpression2, ... , BinaryExpression26

Определяет список параметров типа данных Varbinary / Blob, для которых выполняется побитовая операция исключающего ИЛИ.

NoteПримечание

Вы можете задавать не более чем 26 параметров для данной функции. Задаваемые значения должны быть преобразуемы к одному типу данных. Если заданные параметры не являются целыми числами, то ини будут преобразованы к целому типу перед выполнением данной функции.Исключением является тип данных Varbinary.

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

Numeric / Varbinary. BITXOR( ) возвращает результат побайтовой операции исключительного ИЛИ для заданных параметров.

NoteПримечание

Для типов данных Varbinary / Blob, при вычислении результирующего значения все операнды удлинняются до максимального операнда символами 0h00, только после этого выполняется сама операция. 

Expand imageКомментарии

BITXOR( ) выполняет побайтовое вычисление каждой пары операндов: eExpressionN  и, соответственно, eExpressionN+1. Если соответствующие биты в обоих операндах равны = 0, или = 1, ( eExpressionN / eExpressionN+1), то результирующий бит = 0; в противном случае - результирующий бит = 1. Другими словами - имеют разные значения.

В следующей таблице приводятся варианты побитовой операции исключающего ИЛИ (exclusive OR)? или XOR, для двух операндов eExpressionN и eExpressionN+1:

Бит операнда eExpressionN Бит операнда eExpressionN+1 Бит Результата

0

0

0

0

1

1

1

0

1

1

1

0

Expand imageПример

В следующем примере рассматривается целое число = 5, которое имеет даоичное представление = 0101, это переменная с именем Var1. Другая переменная, с именем Var2, = 6, соответствующее двоичное представление = 0110. BITXOR( ) возвращает значение = 3, которое имеет двоичное представление = 0011.

  CopyCode imageКопировать Код
Var1 = 5 && 0101 binary value
Var2 = 6 && 0110 binary value
? BITXOR(Var1,Var2) && returns 3 (0011 binary value)

Expand imageСм. также