A와 B가 8bit 숫자일때 A와 B의 값을 바꾸는 함수

김포프 2011-08-28

블로그 방문자 중 이런 키워드로 검색한 분이 있어서 서비스 겸 답변 올림
(아마 예전에 올렸던 북미 취업 가이드의 면접 질문 예제가 검색된 듯)

문제:
A와 B가 8bit 숫자일 때 A와 B의 값을 바꾸는 함수.
단, 새로운 변수를 사용하면 안 됨.

A = A ^ B;   // ^는 XOR
B = A ^ B;
A = A ^ B;

팁:
A ^ B = A | B - A & B
(즉, A 또는 B인데, A와 B 둘 다인 경우는 제외)

검증:
벤 다이어그램을 그려보면 됨.

img

제대로 대우받는 개발자 | 부족한 컴공지식 배우기 | MIT급 컴공인강

최저임금으로 고통받는 일회성 프로그래머는 그만! POCU 아카데미가 올해 연봉협상을 책임지겠습니다!