Das passiert eigentlich nur Assembler Programmierern..
Dann kann man das so machen:
x := x XOR y;
y := x XOR y;
x := x XOR y;
Lazarus Testcode:
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
var x,y:Byte;
begin
x:= 26;
y:= 59;
x:=x XOR y;
y:=x XOR y;
x:=x XOR y;
// welchen Wert hat jetzt x und welchen y ???
caption:='x:'+IntToStr(x) + ' y:' + IntToStr(y);
end;
x ist danach 59 und y ist dann 26
Das funktioniert natürlich auch mit allen anderen Werten.
Ebenso geht es mit Integer Werten:
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
var x,y:integer;
begin
x:= -1234;
y:= +5678;
x:=x XOR y;
y:=x XOR y;
x:=x XOR y;
// welchen Wert hat jetzt x und welchen y ???
caption:='x:'+IntToStr(x) + ' y:' + IntToStr(y);
end;
Siro