Difference between revisions of "Xor"

From Lazarus wiki
m (Text replace - "delphi>" to "syntaxhighlight>")
Line 32: Line 32:
 
== Toggle a bit ==
 
== Toggle a bit ==
  
<delphi>
+
<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;
</delphi>
+
</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 16: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.

Read more