자격증/정보처리기사 실기 - 기출문제
[정보처리기사 실기] 2021년 2회 07 - 프로그래밍 [Python]
쏠솔랄라
2025. 7. 16. 08:02
07 다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
a = 100
result = 0
for i in range(1, 3):
result = a >> i
result = result + 1
print(result)
답
더보기
26
해설
코드 | 실행순서 및 해석 | ||
1 | a = 100 | a라는 변수에 초기값 100을 넣음 | |
2 | result = 0 | result라는 변수에 초기값 0을 넣음 | |
3 | for i in range(1, 3): | for문 반복: i가 1부터 시작해 3보다 작을 때까지 반복 -> 1, 2 돌고 끝 |
|
4 | result = a >> i | a값을 i만큼 오른쪽쉬프트해라 | |
5 | result = result + 1 | 1을 더함 | |
6 | print(result) |
a | i | a >> i | result+1 |
100 | 1 | 50 | 51 |
50 | 2 | 25 | 26 |
4.
정수 100을 32비트로 표현하면 아래와 같다
32 | 31 | 30 | ... | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | |
100 | 0 | 0 | 0 | ... | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
a >> i는 a값인 100을 i인 1만큼(1비트) 오른쪽 쉬프트하라는 뜻이므로 오른쪽으로 1비트씩 옮긴다
32 | 31 | 30 | ... | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | |
50 | 0 | 0 | 0 | ... | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 |
i가 2일 때 오른쪽으로 1비트씩 더 옮긴다
32 | 31 | 30 | ... | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | |
25 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 |