Difference between revisions of "Xor"
From Lazarus wiki
Jump to navigationJump to searchm (Text replace - "delphi>" to "syntaxhighlight>") |
|||
Line 32: | Line 32: | ||
== Toggle a bit == | == Toggle a bit == | ||
− | < | + | <syntaxhighlight> |
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. |
Revision as of 15:13, 24 March 2012
│
Deutsch (de) │
English (en) │
suomi (fi) │
français (fr) │
русский (ru) │
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.