החלפה בעזרת XOR

אלגוריתם ההחלפה של XOR מחליף שני ערכים בלי משתנה נוסף. XOR היא פעולה על ביטים. אם הביטים שונים היא נותנת 1. אם הביטים שווים היא נותנת 0.

שלוש הפעולות הקטנות שעושות את כל העבודה הן:

X := X XOR Y
Y := X XOR Y
X := X XOR Y

דוגמה קצרה: X = 12 (1100) ו‑Y = 10 (1010). אחרי שלושת השלבים הערכים מחליפים מקומות.

XOR AX, BX
XOR BX, AX
XOR AX, BX

xor $a0, $a0, $a1
xor $a1, $a0, $a1
xor $a0, $a0, $a1

Var1 = Var1 Xor Var2
Var2 = Var2 Xor Var1
Var1 = Var1 Xor Var2

x ^= y;
y ^= x;
x ^= y;

שימו לב: השיטה לא עובדת אם שני הפרמטרים הם אותו מקום בזיכרון. במחשבים מודרניים לפעמים עדיף להשתמש במשתנה זמני כי זה מהיר יותר שם.

תגובות גולשים

התגובה תפורסם באתר לאחר אישור המערכת

עדיין אין תגובות. היה הראשון להגיב!