22.7 연습문제: 시프트 연산자 사용하기
다음 소스 코드를 완성하여 4가 출력되게 만드세요.
practice_bitwise_shift_operator.c
#include <stdio.h> int main() { unsigned char num1 = 32; num1 = num1 >> 4 << ____; printf("%u\n", num1); return 0; }
실행 결과
4
정답
1
해설
32 >> 4 << x와 같이 32를 오른쪽으로 4번 시프트 그리고 왼쪽으로 x번 시프트 했을 때 4가 나와야 합니다.
0010 0000(32)에 >> 4를 하면 0000 0010(2)가 됩니다.
0010 0000(32) _________ >> 4 0000 0010(2)
여기서
0000 0010(2)를 왼쪽으로 한 번만 시프트하면 0000 0100이 되므로 정답은 1입니다.
0000 0010(2) _________ << 1 0000 0100(4)