문제 06정답을 고른 뒤 해설을 펼쳐보세요.

레지스터에 저장된 10진수 정수 29를 2비트만큼 논리적 우측 시프트(logical right shift)한 결과에 해당하는 10진수의 값은?

  1. ①
    4
    정답
  2. ②
    7
    정답
  3. ③
    8
    정답
  4. ④
    15
    정답
정답·해설 펼치기정답·해설 접기
정답 ②시프트 연산

정답: 공식 최종정답 기준 · 검수 방식

정답 근거

정답은 ②입니다. 29를 2진수로 나타내면 11101입니다. 논리적 우측 시프트를 2비트 하면 오른쪽 두 비트(01)가 버려지고 왼쪽에는 0이 채워져 00111, 즉 10진수 7이 됩니다. 우측 시프트 1비트는 2로 나누고 나머지를 버리는 것과 같으므로 29 ÷ 4 = 7.25에서 소수점 아래를 버린 7과 같습니다.

보기별 검토

✗① 4는 3비트 시프트(29 ÷ 8)의 결과입니다.

✓② 2비트 시프트의 결과이므로 옳습니다.

✗③ 8은 시프트 결과로 나올 수 없는 값입니다.

✗④ 15는 1비트 시프트의 결과(29 ÷ 2의 몫 14)와도 다른 값입니다.

풀이 요령 · 관련 개념

풀이 요령: 양수의 우측 시프트 k비트는 「2^k로 나눈 몫」입니다. 2진 변환 없이 29 ÷ 4의 몫 7로 바로 답할 수 있습니다.