[고급개념] Swap wtih XOR
Swapping을 하는 방법은 정말 간단하다. 하지만 여기서는 일반적인 방법과 XOR 연산을 통해서 교환하는것을 소개하려고한다.
swapping - 기본
보통 아래와 같은 구조로 간단히 변수 값을 교환할 수 있다.
- 핵심 아이디어는 중간에 값을 따로 기록해두는
temp
변수이다.
// swap
int a = 22;
int b = 4;
int temp = -1;
a = temp;
a = b;
b = temp;
swapping with XOR
^
기호는 XOR 연산을 하는 기호이며 아래와 같은 방법으로 변수 값을 교환할 수 있다.
// swap
int a = 22;
int b = 4;
a = a ^ b; // xor
b = a ^ b;
a = a ^ b;
좀 더 자세히 주석을 달아두겠다.
- 주석의 숫자는 2진수로 나타낸 bit이다.
// swap
int a = 22; // a = 10110
int b = 10; // b = 01010
a = a^b // a = 11100
b = a^b // b = 10110
a = a^b // a = 01010
댓글남기기