12.2 시프트 연산자
시프트 연산자(shift operator)는 정수 데이터가 담겨 있는 메모리의 비트를 왼쪽(<<) 또는 오른쪽( >>)으로 지정한 비트만큼 이동시킵니다.
시프트 연산자를 사용하면 비트의 자리를 이동할 수 있습니다. 예를 들어 정수형 데이터인 2를 이진수로 표현하면 0010입니다. 왼쪽(<<) 시프트 연산자를 사용하여 한 칸 이동하면 0100이 됩니다. 오른쪽( >>) 시프트 연산자를 사용하여 한 칸 이동하면 0001이 됩니다.
시프트 연산자의 종류는 다음 표와 같습니다.
▼ 표 12-2 시프트 연산자
연산자 |
의미 |
예 |
설명 |
<< |
왼쪽 시프트 |
변수 << 비트 값; |
• 비트 값만큼 왼쪽으로 비트 이동 • 결괏값이 변수 값 * 2의 비트 값 승 == 비트당 2배 • 변수 값 곱하기 2의 거듭제곱 |
>> |
오른쪽 시프트 |
변수 >> 비트 값; |
• 비트 값만큼 오른쪽으로 비트 이동 • 결괏값이 변수 값 / 2의 비트 값 승 == 비트당 1/2배 • 변수 값 나누기 2의 거듭제곱 |
시프트 연산자 내용을 그림으로 표현하면 다음과 같습니다.
▲ 그림 12-1 시프트 연산자