24.6 연습문제: 괄호 사용하기

주어진 연산자의 실행 순서대로 밑줄 친 부분에 괄호를 넣으세요. 연산자의 실행 순서가 맞다면 6이 출력됩니다.

  1. 시프트 연산자
  2. 덧셈 연산자
  3. 곱셈 연산자

practice_bracket.c

#include <stdio.h>

int main()
{
    int num1 = 1;
    int num2 = 1;
    int num3;

    num3 = 2  *  1  <<  num1  +  2  >>  num2   ;

    printf("%d\n", num3);

    return 0;
}

실행 결과

6

정답

2 * ((1 << num1) + (2 >> num2))

해설

시프트 연산자, 덧셈 연산자, 곱셈 연산자 순으로 실행하라고 했으므로 먼저 1 << num1과 2 >> num2 부분을 각각 괄호로 묶어줍니다. 그다음에 덧셈 연산자가 실행되어야 하므로 ((1 << num1) + (2 >> num2))와 같이 덧셈 연산자와 양쪽 시프트 연산자 부분까지 괄호로 묶어주면 됩니다.