CS 지식/C언어_basic
4-2. 연산자 - 비트 연산자 / 연산자 우선순위
Surin Lee
2021. 3. 19. 02:08
비트 연산자
비트 연산자란, 비트 단위의 연산을 하고자 할 때 사용할 수 있는 연산자들을 말한다. 비트 단위의 연산은 다음과 같이 수행할 수 있다.
~ 는 '부정'의 연산자로, 비트 단위 연산에서의 'Not'이다.[cf) 일반적으론 !가 Not의 의미] 부정의 연산자는 각각의 비트 단위 마다 0과 1을 뒤바꾼다.
&는 '그리고'를 뜻하는 연산자로서, 두 비트 중 쉽게 말해, 두개 다 1인 자리만 1값을 가지게 된다. 집합과 관련지어 생각하자면 교집합이라고 생각하면 된다.
|는 '또는'을 뜻하는 연산자로서, 두 비트 중 하나라도 1을 가지면 1값을 가진다. 합집합이라고 생각하면 된다.
^는 '배타적' 연산자로, 둘중 1개만 1일 때 1이 된다. 합집합에서 교집합을 뺀 부분이라고 생각하면 된다.
<< 왼쪽 시프트, >> 오른쪽 시프트 : 바로 뒤에오는 숫자만큼 왼쪽/오른쪽으로 비트를 민다고 생각하면된다. a<<n이라고 할때, a*(2의 n승) 의 값을 결과 값으로 가진다. 반대로 오른쪽 시프트를 수행하면, 2의 n승으로 나눈 값이 반환된다.
연산자 우선순위
C언어의 연산자 우선순위는 기본적으로 수학에서의 우선순위와 흡사하다.