Skip to content

Instantly share code, notes, and snippets.

@duyet
Created February 25, 2014 11:18
Show Gist options
  • Save duyet/9207110 to your computer and use it in GitHub Desktop.
Save duyet/9207110 to your computer and use it in GitHub Desktop.
Hoán vị 2 biến không sử dụng biến tạm.
Bạn @Phuc-Daik viết hơi khó hiểu.
a ^= b ^= a ^= b mình có thể viết lại thành
a = a ^ b;
b = b ^ a;
a = a ^ b;
^ ở đây là phép XOR.
Ví dụ: a = 0101;
b = 0011;
a ^ b sẽ là:
0101
XOR 0011
------------
= 0110
Giả sử nhé: a = 0101, b = 0011
Lúc này:
1. a = a ^ b = 0110
==> a = 0110, b = 0011
2. b = b ^ a = 0101
==> a = 0110, b = 0101
3. a = a ^ b = 0011
==> a = 0011, b = 0101
Vậy lúc đầu a = 0101, b = 0011
sau 3 bước, a = 0011, b = 0101
Vậy là a và b đã được hoán đổi cho nhau.
--- LvDuit ---
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment