더북(TheBook)

12.2 시프트 연산자

시프트 연산자(shift operator)는 정수 데이터가 담겨 있는 메모리의 비트를 왼쪽(<<) 또는 오른쪽( >>)으로 지정한 비트만큼 이동시킵니다.

시프트 연산자를 사용하면 비트의 자리를 이동할 수 있습니다. 예를 들어 정수형 데이터인 2를 이진수로 표현하면 0010입니다. 왼쪽(<<) 시프트 연산자를 사용하여 한 칸 이동하면 0100이 됩니다. 오른쪽( >>) 시프트 연산자를 사용하여 한 칸 이동하면 0001이 됩니다.

시프트 연산자의 종류는 다음 표와 같습니다.

▼ 표 12-2 시프트 연산자

연산자

의미

설명

<<

왼쪽 시프트

변수 << 비트 값;

• 비트 값만큼 왼쪽으로 비트 이동

• 결괏값이 변수 값 * 2의 비트 값 승 == 비트당 2배

• 변수 값 곱하기 2의 거듭제곱

>>

오른쪽 시프트

변수 >> 비트 값;

• 비트 값만큼 오른쪽으로 비트 이동

• 결괏값이 변수 값 / 2의 비트 값 승 == 비트당 1/2배

• 변수 값 나누기 2의 거듭제곱

 

시프트 연산자 내용을 그림으로 표현하면 다음과 같습니다.

▲ 그림 12-1 시프트 연산자

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.