This page is also available in 3 other languages

^

[Bitwise Operators]

설명

C++에는 비트 배타적 OR(비트 XOR로도 알려짐)라 불리는다소 일반적이지 않은 연산자가 있다. (영어에서 보통 "엑스-오어"로 발음.) 비트 XOR 연산자는 캐럿 기호 ^ 를 쓴다. 비트 XOR 연산자는 입력 비트들이 서로 다르면 1이되고, 아니면 0이 된다.

정확히,

0  0  1  1    operand1
0  1  0  1    operand2
----------
0  1  1  0    (operand1 ^ operand2) - 반환 결과

예제 코드

int x = 12;     // 2진수: 1100
int y = 10;     // 2진수: 1010
int z = x ^ y;  // 2진수: 0110, 즉 10진수 6

^ 연산자는 정수식의 어떤 비트들을 토글(0을 1로, 1을 0으로 바꿈))에 주로 쓰인다.
비트 XOR 연산에서 마스크 비트에 1이 있으면 그 비트는 뒤집힌다. 0이 있으면 비트는 뒤집히지 않고 그대로 있다. 아래는 디지털 핀 5가 깜박이는 프로그램.

// Blink_Pin_5
// demo for Exclusive OR
void setup() {
  DDRD = DDRD | B00100000;  // 디지털 핀 5를 OUTPUT 으로
  Serial.begin(9600);
}

void loop() {
  PORTD = PORTD ^ B00100000;  // 비트 5 (디지털 5) 뒤집기, 다른 것은 그대로
  delay(100);
}

더보기