알고리즘 문제를 풀다보면, 순서 혹은 정렬등의 문제로
두 수의 자리를 바꿔야 하는 경우가 생긴다.
보통은
int temp=a;
a=b;
b=temp;
이런식으로 스왑을 할 것이다.
하지만 비트연산자를 이용하면
a^=b^=a^=b;
이런식으로 사용할 수 있다.
변수 하나의 메모리공간을 절약할 수 있다 !
아래는 이진수로 표현한 예시이다.
a = 5 (00101);
b = 23 (10111);
a ^=b (00101^10111) = 10010
b ^=a (10111^10010) = 00101
a ^=b (10010^10111) = 10111;
a^=b^=a^=b