From Free Pascal wiki

Deutsch (de) English (en) suomi (fi) français (fr) русский (ru)
Back to Reserved words.

The xor operator compares two boolean values, and returns true if and only if one of them is true.

Boolean operation

Exclusive or (xor) results in a value of true if and only if exactly one of the operands has a value of true.

Truth table

A B A xor B
  false     false     false
  false   true   true
  true   false   true
  true   true   false

Bitwise operation

Bitwise xor sets the bit to 1 where the corresponding bits in its operands are different, and to 0 if they are the same.

Toggle a bit

function ToggleBit(const AValue,ABitNumber:integer):integer;
   result := AValue xor 1 shl ABitNumber;

If you call ToggleBit(11,0) then get 10. If you call ToggleBit(10,2) then get 14.

navigation bar: Pascal logical operators

and • or • not • xor
shl • shr
and_then (N/A)• or_else (N/A)

see also

{$boolEval} • Reference: § “boolean operators” • Reference: § “logical operators”