비트 연산자
말 그대로 비트 단위로 연산이 이루어지는 연산자이다. 암호화나 임의의 숫자를 만들때 그리고 임베디드 시스템 프로그램에서 메모리 용량이 부족하거나 계산이 복잡해서 속도가 느려질때, 곱셈이나 나눗셈을 비트 이동연산자를 사용하면 빠르게 처리할 수 있다.
1.비트 논리 연산자
비트 단위로 &,|,^,~의 연산이 이루어진다.
① &
두개의 비트 값이 모두 1인경우에만 연산 결과 값이 참이된다.
②|
비트 값이 하나라도 1이면 연산 결과 값이 1이된다.
③^
같은 값이면 0, 다른 값이면 1의 결과를 갖는다.
④~
반전 연산자로 0은 1로 1은 0으로 바꾸는 연산자이다.
맨앞자리 부호 비트도 바꿀 수 있다.
2. 비트 이동 연산자
:시프트 연산자라고도 부르며 <<,>> 세가지가 있다.
①<<
왼쪽으로 비트를 n 만큼 이동한다.
num< n 으로 작성하고 왼쪽으로 n비트 만큼 이동한다는 것은 기존 값에 2n만큼 곱한다는 뜻.
②>>
오른쪽으로 비트를 n만큼 이동한다.
num>> n 으로 작성하고 오른쪽으로 n비트 만큼 이동한다는 것은 기존 값을 2n만큼 나눈다는 뜻이다.
오른쪽으로 땡기면서 왼쪽에 채워지는 비트 값은 기존의 부호 비트와 동일
③>>>
>>시프트 연산자와 동일하게 비트를 이동시키지만 차이점은 왼쪽에 채워지는 비트값이 부호 비트와 상관없이 항상 0이 된다.
연산자 우선순위
- 단항연산자가 가장높고, 이항, 삼함 연산자 순서대로 처리
- 대입연산자의 우선 순위가 가장 낮음
- 산술, 관계, 논리, 대입 연산자 순서로 우선 순위를 가지며 ()의 우선순위가 가장 높음