^
설명
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);
}
더보기
- 언어 : << (비트 왼쪽으로 옮김)
- 언어 : >> (비트 오른쪽으로 옮김)
- 언어 : & (비트 AND)
- 언어 : ~ (비트 NOT)
- 언어 : | (비트 OR)
- 튜토리얼 : BitMath Tutorial
※ ARDUINO BUY RECOMMENDATION
Arduino UNO R3 | |
Arduino Starter Kit |
Please note: These are Amazon affiliate links. If you buy the components through these links, We will get a commission at no extra cost to you. We appreciate it.