비트 연산자는 피연산자의 같은 자리에 있는 비트끼리의 연산을 수행한다. 마이크로콘트롤러(아두이노 등) 프로그래밍에서는 특정 레지스터의 비트값을 조작해야 하는 일이 매우 빈번하기 때문에 비트 연산에 대해서는 자세히 알아두는 것이 좋다. 사실 PC와 같은 환경에서는 비트 연산이 그리 유용하지 않으나 마이크로콘트롤러 프로그래밍에서는 그렇지 않다는 것을 실제로 실습을 진행해 보면 알게 될 것이다.
다음 표에 비트 연산자의 종류와 동작에 대해서 정리하였다.
표 3.6.1 비트연산자의 종류
비트연산자 | 의미 | 수행 동작 |
& | 논리-and | 두 피연산자의 bit-wise AND |
| | 논리-or | 두 피연산자의 bit-wise OR |
^ | 논리-xor | 두 피연산자의 bit-wise XOR |
~ | 논리 -not | 피연산자의 bit-wise NOT |
<< | 왼쪽shift | 비트의 위치를 왼쪽으로 이동 |
>> | 오른쪽shift | 비트의 위치를 오른쪽으로 이동 |
비트 연산자는 정수형 데이터(char, int, short, long, long long 과 각각의 unsigned형)에만 적용되며 실수형 (float, double, long double)에는 사용하지 않는다는 것에 주의해야 한다.
이항 연산인 & (and), | (or), ^ (xor) 세 연산자의 경우 비트 연산은 데이터의 같은 위치에 있는 비트끼리 연산이 이루어진다는 사실을 숙지해야 한다. 또한 연산 기호가 논리 연산자(&&, ||, ~)와 비슷해서 혼동하기 쉬우니 주의해야 한다.
C++ 강좌 전체 목록 >>>
'프로그래밍언어.Lib > C,C++' 카테고리의 다른 글
C/C++의 bitwise-or 연산자 (|) (0) | 2015.05.20 |
---|---|
C/C++의 bitwise-and 연산 (0) | 2015.05.20 |
C/C++의 대입연산자 (0) | 2015.05.20 |
C/C++의 증감연산자(++, --) (0) | 2015.05.19 |
C/C++의 조건 연산자(?:) (0) | 2015.05.19 |