Rubrik: Variablen/Strings · Sonstiges | VB-Versionen: VB4, VB5, VB6 | 04.12.02 |
Zwei Ganzzahlen miteinander vertauschen Unter Verwendung des XOR-Operators lassen sich zwei Ganzzahlen ohne zusätzliche Hilfsvariable miteinander vertauschen. | ||
Autor: Michael Hartmann | Bewertung: | Views: 12.460 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Um den Inhalt zweier Ganzzahl-Variablen (Long, Integer, Byte) zu vertauschen kennen die meisten Programmierer wohl nur den Weg über eine Hilfsvariable. Somit sieht man in vielen Programmen nachfolgendes Konstrukt, um den Inhalt zweier Integer-Variablen zu vertauschen:
Dim a As Integer Dim b as Integer Dim Temp as Integer Temp = a a = b b = Temp
Na ja, das mag zwar funktionieren, aber es geht auch ohne zusätzliche Hilfsvariable. Allerdings funktioniert nachfolgender Code nur mit Ganzzahlen, d.h. mit Variablen vom Typ Byte, Integer oder Long.
Hier der Code:
Dim a As Integer Dim b As Integer a = a Xor b b = a Xor b a = a Xor b
Fangen wir einmal den Code zu analysieren:
Als Anfangswerte sollen folgende Bedingungen gelten:
a = 23 b = 34
Nach der ersten Xor-Verknüpfung (23 Xor 34) enthält a den Wert 53, also:
a = 53 b = 34
Nach der zweiten Xor-Verknüpfung (53 Xor 34) enthält b den Wert 23, also:
a = 53 b = 23
Nach der letzten Xor-Verknüpfung (53 Xor 23) enthält a den Wert 34, also:
a = 34 b = 23
Und genau das war ja auch unser Ziel D.h. die Ausgangszustände der beiden Variablen wurden miteinander vertauscht.