Difference between revisions of "Xor"

From Free Pascal wiki
Jump to navigationJump to search
m (Fixed syntax highlighting)
(add footer, cat)
Line 1: Line 1:
 
{{Xor}}
 
{{Xor}}
 
 
 
Back to [[Reserved words]].
 
Back to [[Reserved words]].
  
 +
The '''xor''' [[Operator|{{HL|operator}}]] compares two [[Boolean|{{HL|boolean}}]]  values, and returns true if and only if one of them is true.
  
 
= Boolean operation =
 
= Boolean operation =
Line 43: Line 42:
 
If you call ToggleBit(11,0) then get 10. If you call ToggleBit(10,2) then get 14.
 
If you call ToggleBit(11,0) then get 10. If you call ToggleBit(10,2) then get 14.
  
== See also ==
+
{{Logical operators}}
 
 
 
* [[Variable_parameter#XOR swap| XOR swap]]
 
* [[Variable_parameter#XOR swap| XOR swap]]
* [[Shl]]
 
 
* [[Const]]
 
* [[Const]]
 
* [[Function]]
 
* [[Function]]
 
* [[Integer]]
 
* [[Integer]]
 +
 +
[[Category:Code]]
 +
[[Category:Operators]]

Revision as of 23:45, 16 October 2020

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;
begin
   result := AValue xor 1 shl ABitNumber;
end;

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


navigation bar: Pascal logical operators
operators

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

see also

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