Description |
The Xor keyword is used in two different ways:
1. To perform a logical or boolean 'Exclusive-or' of two logical values. If they are different, then the result is true.
2. To perform a mathematical 'Exclusive-or' of two integers. The result is a bitwise 'Exclusive-or' of the two numbers. For example:
10110001 Xor 01100110 = 11010111
|
|
Notes |
If the boolean expression is calculated (as opposed to being a Boolean variable), then brackets are required to isolate it.
|
|
Related commands |
And |
|
Boolean and or bitwise and of two arguments |
Not |
|
Boolean Not or bitwise not of one arguments |
Or |
|
Boolean or or bitwise or of two arguments |
|
|
|
Example code : Illustrate both types of Xor usage |
// Full Unit code. // ----------------------------------------------------------- // You must store this code in a unit called Unit1 with a form // called Form1 that has an OnCreate event called FormCreate. unit Unit1; interface uses Forms, Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} // Include form definitions procedure TForm1.FormCreate(Sender: TObject); var
num1, num2, num3 : Integer;
letter : Char;
begin num1 := $25; // Binary value : 0010 0101 $25 num2 := $32; // Binary value : 0011 0010 $32 // XOr'ed value : 0001 0111 = $17
letter := 'G';
// And used to return a Boolean value
if (num1 > 0) Xor (letter = 'G')
then ShowMessage('Only one of the values is true')
else ShowMessage('Both values are true or false');
// And used to perform a mathematical Xor operation
num3 := num1 Xor num2;
// Display the result
ShowMessageFmt('$25 Xor $32 = $%x',[num3]);
end; end.
|
Hide full unit code |
Both values are true or false
$25 Xor $32 = $17
|
|