비트연산자

XOR 연산

3. XOR 연산 (^)

규칙

0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0  ← 서로 다르면 1

예시

  1100 (12)
^ 1010 (10)
--------
  0110 (6)

C 코드

int a = 12;    // 1100
int b = 10;    // 1010
int c = a ^ b; // 0110 = 6
printf("%d", c); // 출력: 6

실무 용도: 특정 비트 토글 (반전)

// 2번 비트 토글 (0→1, 1→0)
int value = 0b1101;
value = value ^ 0b0100;
// 결과: 0b1001

Arduino 예시: LED 깜빡이기

// 5번 핀 토글 (켜져있으면 끄고, 꺼져있으면 켜기)
PORTB ^= (1 << 5);

특별한 용도: 임시 변수 없이 swap

int a = 5, b = 3;
a = a ^ b;  // a = 6
b = a ^ b;  // b = 5
a = a ^ b;  // a = 3
// 결과: a=3, b=5 (교환됨!)

댓글

댓글 본문
버전 관리
anton
현재 버전
선택 버전
graphittie 자세히 보기