Xor

From Xojo Documentation

Revision as of 19:06, 12 June 2018 by PLefebvre (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Operator

Performs a logical Xor operation on booleans and a bitwise Xor operation on integers.

Usage

result = expression1 Xor expression2

Part Description
result A Boolean value if expression1 and expression2 are Boolean; an Integer value if expression1 and expression2 are integers.
expression1 Any valid Boolean or Integer expression. The data types of expression1 and expression2 must match.
expression2 Any valid Boolean or Integer expression. The data types of expression1 and expression2 must match.

Notes

If you use Xor with two booleans, it returns the logical Xor of the booleans. The result table for Xor, Or, and And is:

Expression1 Expression2 Xor Or And
True True False True True
True False True True False
False True True True False
False False False False False

If you use Xor with two booleans, it returns True if the booleans are not equal. The logic is "Not (a=b)". The result is a boolean.

When you pass two integers, it returns an integer that is the result of comparing each bit of the two integers passed and assigning 1 to the bit position in the integer returned if both bits in the same position in the integer passed are not equal. Otherwise, 0 is assigned to the bit position. In this case, it is equivalent to using the BitXor method of the Bitwise class.

The following table shows the results:

Integer1 Integer2 BitAnd BitOr BitXor
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0

Sample Code

This example does a bitwise Xor on the two integers passed.

Dim i As Integer
I = 5 Xor 3 // returns 6

See Also

And, Not, Or operators; Bitwise class; Operator_And function; Operator precedence