논리 연산자

논리 연산자

논리 연산자는 서수(ordinal) 표현식의 개별 비트에 작용해요. 논리 연산자는 정수 타입의 피연산자만 받고, 결과도 정수 타입을 돌려줘요. 가능한 논리 연산자는 표 12.4에 나와 있어요.

출처: 문서

본문

표 12.4: 논리 연산자

연산자 동작
not 비트별 부정 (단항)
and 비트별 and
or 비트별 or
xor 비트별 xor
shl 왼쪽으로 비트 시프트
shr 오른쪽으로 비트 시프트
<< 왼쪽으로 비트 시프트 (shl과 동일)
>> 오른쪽으로 비트 시프트 (shr과 동일)

다음은 유효한 논리 표현식의 예시예요.

A shr 1  { same as A div 2, but faster}
 Not 1    { equals -2 }
 Not 0    { equals -1 }
 Not -1   { equals 0  }
 B shl 2  { same as B * 4 for integers }
 1 or 2   { equals 3 }
 3 xor 1  { equals 2 }

주석을 보면 알 수 있듯, shr 1은 정수 나눗셈 div 2와 같은 결과를 내면서도 더 빨라요. shl 2도 정수에서 B * 4와 동일한 효과를 줘요.

더 알아보기