더북(TheBook)

비트 시프트 연산자

시프트 연산자는 정수형 변수 또는 상수 값의 비트를 지정된 수만큼 이동하는 연산자입니다.

x << n : 비트를 지정된 수 n만큼 왼쪽으로 이동하는 연산자입니다. 이동 후 오른쪽에 생기는 빈 자리는 0으로 채워집니다.

00000010 << 2 → 00001000

x >> n : 비트를 지정된 수 n만큼 오른쪽으로 이동하는 연산자입니다. 이동 후 왼쪽에 생기는 빈 자리는 0으로 채워집니다.

00001000 >> 2 → 00000010

x << nx의 값을 2n으로 곱하는 결과와 같고 x >> nx의 값을 2n으로 나누는 결과와 같습니다. 코드를 실행하여 직접 확인해 보세요.

bit_shift.c

#include <stdio.h>
 
main() {
    int x = 4;
    int n = 2;
 
    printf("%d << %d = %d\n", x, n, x << n);
    printf("%d >> %d = %d\n", x, n, x >> n);
}

실행 결과

4 << 2 = 16

4 >> 2 = 1

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