C 비트 연산자C Bitwise Operators

비트 연산자는 비트 AND(&), 배타적 비트 OR(^) 및 포괄적 비트 OR(|) 연산을 수행합니다.The bitwise operators perform bitwise-AND (&), bitwise-exclusive-OR (^), and bitwise-inclusive-OR (|) operations.

구문Syntax

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

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

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

비트 연산자의 피연산자는 정수 형식을 가져야 하지만 해당 형식은 다를 수 있습니다.The operands of bitwise operators must have integral types, but their types can be different. 이러한 연산자는 일반적인 산술 변환을 수행하며, 결과의 형식은 변환 후 피연산자의 형식입니다.These operators perform the usual arithmetic conversions; the type of the result is the type of the operands after conversion.

C 비트 연산자는 아래에 설명되어 있습니다.The C bitwise operators are described below:

연산자Operator 설명Description
& 비트 AND 연산자는 첫 번째 피연산자의 각 비트를 두 번째 피연산자의 해당 비트와 비교합니다.The bitwise-AND operator compares each bit of its first operand to the corresponding bit of its second operand. 양쪽 비트가 모두 1이면 해당 결과 비트는 1로 설정됩니다.If both bits are 1, the corresponding result bit is set to 1. 그렇지 않으면 해당 결과 비트는 0으로 설정됩니다.Otherwise, the corresponding result bit is set to 0.
^ 포괄적 비트 OR 연산자는 첫 번째 피연산자의 각 비트를 두 번째 피연산자의 해당 비트와 비교합니다.The bitwise-exclusive-OR operator compares each bit of its first operand to the corresponding bit of its second operand. 한 비트가 0이고 다른 비트가 1인 경우 해당 결과 비트는 1로 설정됩니다.If one bit is 0 and the other bit is 1, the corresponding result bit is set to 1. 그렇지 않으면 해당 결과 비트는 0으로 설정됩니다.Otherwise, the corresponding result bit is set to 0.
|| 배타적 비트 OR 연산자는 첫 번째 피연산자의 각 비트를 두 번째 피연산자의 해당 비트와 비교합니다.The bitwise-inclusive-OR operator compares each bit of its first operand to the corresponding bit of its second operand. 어느 한쪽 비트가 1이면 해당 결과 비트는 1로 설정됩니다.If either bit is 1, the corresponding result bit is set to 1. 그렇지 않으면 해당 결과 비트는 0으로 설정됩니다.Otherwise, the corresponding result bit is set to 0.

예제Examples

이러한 선언은 다음 3가지 예제에서 사용됩니다.These declarations are used for the following three examples:

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

n = i & j;

이 첫 번째 예제에서 n에 할당된 결과는 i(16진수 0xAB00)와 같습니다.The result assigned to n in this first example is the same as i (0xAB00 hexadecimal).

n = i | j;

n = i ^ j;

두 번째 예제에서 포괄적 비트 OR의 결과 값은 0xABCD(16진수)이지만 세 번째 예제의 배타적 비트 OR은 0xCD(16진수)를 생성합니다.The bitwise-inclusive OR in the second example results in the value 0xABCD (hexadecimal), while the bitwise-exclusive OR in the third example produces 0xCD (hexadecimal).

Microsoft 전용Microsoft Specific

부호 있는 정수에 대한 비트 연산 결과는 ANSI C 표준에 따라 구현이 정의됩니다.The results of bitwise operation on signed integers is implementation-defined according to the ANSI C standard. Microsoft C 컴파일러의 경우 부호 있는 정수에 대한 비트 연산은 부호 없는 정수에 대한 비트 연산과 동일하게 작동합니다.For the Microsoft C compiler, bitwise operations on signed integers work the same as bitwise operations on unsigned integers. 예를 들어, -16 & 99는 이진 형식으로 다음과 같이 표현될 수 있습니다.For example, -16 & 99 can be expressed in binary as

  11111111 11110000
& 00000000 01100011
  _________________
  00000000 01100000

비트 AND의 결과는 10진수 96입니다.The result of the bitwise AND is 96 decimal.

Microsoft 전용 종료END Microsoft Specific

참고 항목See also

비트 AND 연산자: &Bitwise AND Operator: &
배타적 비트 OR 연산자: ^Bitwise Exclusive OR Operator: ^
포괄적 비트 OR 연산자: |Bitwise Inclusive OR Operator: |