C 비트 연산자

비트 연산자는 비트 AND(&), 비트 배타적 OR(^) 및 비트 포괄 OR(|) 연산을 수행합니다.

문법

AND-expression:
equality-expression
AND-expression & equality-expression

exclusive-OR-expression:
AND-expression
exclusive-OR-expression ^ AND-expression

inclusive-OR-expression:
exclusive-OR-expression inclusive-OR-expression | exclusive-OR-expression

비트 연산자의 피연산자는 정수 형식이 있어야 하지만 해당 형식은 다를 수 있습니다. 이러한 연산자는 일반적인 산술 변환을 수행합니다. 결과의 형식은 변환 후 피연산자의 형식입니다.

C 비트 연산자는 아래에 설명되어 있습니다.

오퍼레이터 설명
& 비트 AND 연산자는 첫 번째 피연산자의 각 비트를 두 번째 피연산자의 해당 비트와 비교합니다. 두 비트가 모두 1이면 해당 결과 비트가 1로 설정됩니다. 그렇지 않으면 해당 결과 비트가 0으로 설정됩니다.
^ 비트 배타적 OR 연산자는 첫 번째 피연산자의 각 비트를 두 번째 피연산자의 해당 비트와 비교합니다. 한 비트가 0이고 다른 비트가 1이면 해당 결과 비트가 1로 설정됩니다. 그렇지 않으면 해당 결과 비트가 0으로 설정됩니다.
| 비트 포함 OR 연산자는 첫 번째 피연산자의 각 비트를 두 번째 피연산자의 해당 비트와 비교합니다. 두 비트 중 하나가 1이면 해당 결과 비트가 1로 설정됩니다. 그렇지 않으면 해당 결과 비트가 0으로 설정됩니다.

예시

이러한 선언은 다음 세 가지 예제에 사용됩니다.

short i = 0xAB00;
short j = 0xABCD;
short n;

n = i & j;

이 첫 번째 예제에 할당된 n 결과는 (0xAB00 16진수)와 같습니다 i .

n = i | j;

n = i ^ j;

두 번째 예제의 비트 포함 OR은 값 0xABCD(16진수)를 생성하고, 세 번째 예제의 비트 배타적 OR은 0xCD(16진수)를 생성합니다.

Microsoft 전용

서명된 정수에 대한 비트 연산의 결과는 C 표준에 따라 구현으로 정의됩니다. Microsoft C 컴파일러의 경우 부호 있는 정수에 대한 비트 연산은 부호 없는 정수에 대한 비트 연산과 동일하게 작동합니다. 예를 들어 이 -16 & 99 진 파일로 다음과 같이 표현할 수 있습니다.

  11111111 11110000
& 00000000 01100011
  _________________
  00000000 01100000

비트 AND의 결과는 96 소수점입니다.

Microsoft 전용 종료

참고하십시오

비트 AND 연산자: &
비트 배타적 OR 연산자: ^
비트 포함 OR 연산자: |