프로그래밍의 기초(의사 코드 트레이스)
x와 y는 8비트 부호 없는 정수라고 한다. <<와 >>는 논리 시프트이며, 빈 비트에는 0이 들어가고 8비트를 넘친 비트는 버린다. ∨는 비트별 논리합을 나타낸다. 다음 프로그램을 실행한 후의 y의 값은?
8-bit: x ← 13, y
y ← (x << 2) ∨ (x >> 1)
- A27
- B54
- C58
정답과 해설 보기
정답: B. 54
13은 2진수로 00001101입니다. x << 2는 2비트 왼쪽으로 밀어 00110100 = 52, x >> 1은 1비트 오른쪽으로 밀어 00000110 = 6입니다(밀려난 최하위의 1은 버려집니다). 논리합은 00110110 = 54입니다. 52와 6은 4의 자리 비트가 둘 다 1이므로, 덧셈 52 + 6 = 58과는 일치하지 않습니다.