문제
다음 C 프로그램의 실행 결과는?
#include <stdio.h> int main() { int x = 8; printf("%d ", x >> 1); printf("%d", x << 2); return 0; }
① 4 32 ② 2 16 ③ 4 16 ④ 8 8
정답
1번
해설
x >> 1: 8(=1000)을 오른쪽으로 1비트 이동하면 0100 = 4가 된다. x << 2: 8(=1000)을 왼쪽으로 2비트 이동하면 100000 = 32가 된다. 비트 시프트는 2의 거듭제곱으로 나누거나 곱하는 효과를 낸다.