반응형
2개의 변수를 교환하는 C 코드는 다음과 같다.
int a ,b;
int temp;
temp = a;
a = b;
b = temp;
위 코드에서 교환을 위해 임시변수 temp를 사용했는데 임시변수 없이 다음와 같이 XOR 교환 알고리즘 (XOR swap algorithm)으로 구현할 수도 있다.
int a, b;
a = a^b;
b = a^b;
a = a^b;
XOR 교환 알고리즘의 일반식은 다음과 같다.
a = a XOR b
b = a XOR b
a = a XOR b
위 식의 진리표는 다음과 같다.
In | Out | ||
a |
b |
a | b |
0 |
0 |
0 | 0 |
0 |
1 |
1 | 0 |
1 |
0 |
0 | 1 |
1 |
1 |
1 | 1 |
반응형
'컴퓨터 > C' 카테고리의 다른 글
C 코드와 C++ 코드를 함께 컴파일 extern "C" (0) | 2020.06.03 |
---|---|
C++의 Name mangling (0) | 2020.06.03 |
C 언어 exit 함수 (0) | 2020.05.10 |
return과 exit 차이 (0) | 2020.05.10 |
C 언어 XOR 비트연산 (0) | 2020.05.07 |
댓글