비트 연산 테크닉 1. swap

윤익후·2020년 7월 8일
0

비트연산 테크닉

목록 보기
1/2
post-thumbnail

알고리즘 문제를 풀다보면, 순서 혹은 정렬등의 문제로
두 수의 자리를 바꿔야 하는 경우가 생긴다.
보통은

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

0개의 댓글