Difference between revisions of "Xor"
From Lazarus wiki
Jump to navigationJump to search (New page: Exclusive or ('''xor''') results in a value of "true" if and only if exactly one of the operands has a value of "true = Bitwise operation = == Toggle a bit == <delphi> function ToggleB...) |
(add footer, cat) |
||
(11 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
− | + | {{Xor}} | |
+ | 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 = | ||
+ | |||
+ | Exclusive or ('''xor''') results in a value of [[True|true]] if and only if exactly one of the operands has a value of true. | ||
+ | |||
+ | == Truth table == | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! A !! B !! A xor B | ||
+ | |- | ||
+ | | false || false | ||
+ | |style="background: #eeeeee" | false | ||
+ | |- | ||
+ | | false || true | ||
+ | |style="background: #eeeeee" | true | ||
+ | |- | ||
+ | | true || false | ||
+ | |style="background: #eeeeee" | true | ||
+ | |- | ||
+ | | true || true | ||
+ | |style="background: #eeeeee" | false | ||
+ | |} | ||
= Bitwise operation = | = 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 == | == Toggle a bit == | ||
− | < | + | <syntaxhighlight lang=pascal> |
function ToggleBit(const AValue,ABitNumber:integer):integer; | function ToggleBit(const AValue,ABitNumber:integer):integer; | ||
begin | begin | ||
result := AValue xor 1 shl ABitNumber; | result := AValue xor 1 shl ABitNumber; | ||
end; | end; | ||
− | </ | + | </syntaxhighlight> |
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. | ||
− | + | {{Logical operators}} | |
− | * [[ | + | * [[Variable_parameter#XOR swap| XOR swap]] |
* [[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.
operators |
|
---|---|
see also |
|