[c++] 비트 연산자(&, |, ^, ~)의 역할과 사용법
비트 연산자(&, , ^, ~)는 C++ 프로그래밍 언어에서 비트 단위 연산을 수행하는 데 사용됩니다. 이러한 연산자들은 정수형 데이터의 각 비트를 조작하는 데 유용합니다. 이 글에서는 비트 연산자의 역할과 사용법에 대해 알아보겠습니다.

& (AND 연산자)

& 연산자는 두 비트를 비교하여 두 비트가 모두 1이면 1을 반환하고, 그 외의 경우에는 0을 반환합니다. 예를 들어, 5 & 3의 경우를 살펴보겠습니다.

int result = 5 & 3; // 이진수로 변환하면 0101 & 0011이 되어 0001이 됩니다.

이 경우 result는 1이 됩니다.

| (OR 연산자)

** ** 연산자는 두 비트 중 하나라도 1이면 1을 반환하고, 둘 다 0일 때에만 0을 반환합니다. 예를 들어, 5 3의 경우를 살펴보겠습니다.
int result = 5 | 3; // 이진수로 변환하면 0101 | 0011이 되어 0111이 됩니다.

이 경우 result는 7이 됩니다.

^ (XOR 연산자)

^ 연산자는 두 비트가 서로 다르면 1을 반환하고, 같을 때에는 0을 반환합니다. 예를 들어, 5 ^ 3의 경우를 살펴보겠습니다.

int result = 5 ^ 3; // 이진수로 변환하면 0101 ^ 0011이 되어 0110이 됩니다.

이 경우 result는 6이 됩니다.

~ (보수 연산자)

~ 연산자는 비트의 보수를 반환합니다. 즉, 0은 1로, 1은 0으로 바꾼 결과를 반환합니다. 예를 들어, ~5의 경우를 살펴보겠습니다.

int result = ~5; // 이진수로 변환하면 ~0101이 되어 1010이 됩니다.

이 경우 result는 -6이 됩니다.

비트 연산자는 메모리 절약, 빠른 연산, 플래그 처리 등 다양한 상황에서 유용하게 활용될 수 있습니다.

참고 자료:

  1. C++ 비트 연산자 - w3schools
  2. C++ 연산자 오버로딩 - cppreference