프로그래밍의 기초(의사 코드 트레이스)
÷는 나눗셈이며, 정수형 변수(인수 포함)에 대입할 때는 소수점 이하를 버린다. 다음 함수 toBin을 toBin(12)로 호출했을 때의 반환값은?
○integer: toBin(integer: x)
integer: y ← 0, p ← 1
while (x > 0)
y ← y + (x mod 2) × p
p ← p × 10
x ← x ÷ 2
endwhile
return y
- A11
- B100
- C1100
정답과 해설 보기
정답: C. 1100
x mod 2는 2진수의 일의 자리, x ← x ÷ 2는 2진수로 한 자리 오른쪽으로 미는 조작입니다. x는 12, 6, 3, 1, 0으로 바뀌고, 아래 자리부터 0, 0, 1, 1이 얻어집니다. p는 1, 10, 100, 1000으로 10배씩 늘어나므로 y = 0 × 1 + 0 × 10 + 1 × 100 + 1 × 1000 = 1100이 됩니다. 12를 2진수로 나타낸 각 자리를 10진수의 각 자리로 늘어놓은 값입니다.