xor (Exclusive Or)

VALUE1

xor VALUE2

The** xor **operator returns true if one of the two parameters is true, false if neither or both are true.

**Parameters**

This operator has two parameters:

** value1** – The first numeric value.

** value2** – The second numeric value.

**Description**

The *xor* operator (short for *exclusive or*, also called *exclusive disjunction*) combines two Boolean values by *exclusive or*-ing them together. This operator yields true if exactly one (but not both) of the two parameters is true. A simple way to state this is *“one or the other but not both.”*

This example checks to see if two shoes are a pair:

```
if Shoe1="Left" xor Shoe2="Left"
Status="Pair"
endif
```

The result of this formula is true only if one shoe is *Left* and the other shoe is *Right* (or to be more precise, not *Left*). If both shoes are *Left*, or both are *Right*, the formula will be false.

Note: The Boolean values *true* and *false* are actually integer (numeric) values *-1* and *0*.

Note: If you are a “C” programmer, Panorama’s *xor* operator is equivalent to C’s ^ operator. (In Panorama, the ^ operator means *raise to power*.)

**See Also**

- < -- compares two values to see if the first value is less than the second value.
- <= -- compares two values to see if the first value is less than or equal to the second value.
- <> -- compares two values to see if they are different.
- = -- compares two values to see if they are the same.
- > -- compares two values to see if the first value is greater than the second value.
- >= -- compares two values to see if the first value is greater than or equal to the second value.
- and -- returns true if both operands are true.
- beginswith -- returns true if the value on the left starts with the value on the right, false if it doesn't.
- between( -- checks to see if a value is between two other values.
- boolstr( -- converts a Boolean value to text, either `"true"` or `"false"`.
- contains -- returns true if the value on the left contains the value on the right, false if it doesn't.
- endswith -- returns true if the value on the left ends with the value on the right, false if it doesn't.
- false( -- returns false.
- like -- checks to see if the text on the left matches the wildcard pattern specified on the right.
- limit( -- checks to see if a value is between a minimum and maximum value. If it is, the value is returned unchanged. If it is below the minimum, the minimum value is returned. If it is above the maximum the maximum value is returned.
- match -- checks to see if the text on the left matches the wildcard pattern specified on the right.
- matchexact -- checks to see if the text on the left matches the wildcard pattern specified on the right.
- not -- reverses a boolean value.
- not( -- reverses a Boolean value
- notbetween( -- checks to see if a value is *not* between two other values.
- notcontains -- returns true if the value on the left does not contain the value on the right, false if it does.
- notmatch -- checks to see if the text on the left does not match the wildcard pattern specified on the right.
- notmatchexact -- checks to see if the text on the left doesn't match the wildcard pattern specified on the right.
- or -- returns true if either operand is true, or false if both are false.
- regexmatch -- checks to see if the text on the left matches the regular expression on the right (see Regular Expressions).
- regexmatchexact -- checks to see if the text on the left matches the regular expression on the right (see Regular Expressions).
- soundex( -- computes a four character code that roughly corresponds to the phonetic pronunciation of the word.
- soundslike -- compares two words to see if they "sound like" each other.
- switch( -- chooses from a list of values.
- true( -- returns true.

**History**

Version | Status | Notes |

10.0 | No Change | Carried over from Panorama 6.0 |

^{1}:operator_power.html