[정답]33. 비트 연산자 ^를 이용한 암호화

◈ 기본 연습
다음 프로그램의 출력 결과를 예측하시오.

#include <stdio.h>
int main()
{
    int a = 0x12345678;
    int b = 0x456789AB;
    int c = 0; 
    int d = 0; 
    c = a^b;
    printf("%#X \n", c);
    d = c^b;
    printf("%#X \n", d); 
    return 0;
}

답:
0X5753DFD3
0X12345678
특정 값을 우측 피연산자로 ^연산을 두 번하면 원래의 값이 만들어집니다.
이러한 이유로 a^b로 암호한 데이터 c를 c^b를 하였을 때 원래 값인 a와 같아지는 것입니다.