문제 06정답을 고른 뒤 해설을 펼쳐보세요.
레지스터에 저장된 10진수 정수 29를 2비트만큼 논리적 우측 시프트(logical right shift)한 결과에 해당하는 10진수의 값은?
- ①4정답
- ②7정답
- ③8정답
- ④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로 바로 답할 수 있습니다.