23-1아래 C 프로그램은 10진 정수 형태로 적은 2진수 110101… | 2023년 정보처리기사실기 1회차 기출문제 상세 페이지
11
23-1
아래 C 프로그램은 10진 정수 형태로 적은 2진수 110101을 10진수로 바꾸어 출력한다. 출력이 53이 되도록 빈칸 ①, ②에 알맞은 연산자와 값을 적으시오.
#include <stdio.h>
int main(void) {
int bin = 110101;
int weight = 1;
int result = 0;
while (bin > 0) {
result += (bin __①__ __②__) * weight;
weight *= 2;
bin /= 10;
}
printf("%d", result);
return 0;
}해설
① %
② 10
[해설]
정수 bin을 10으로 나눈 나머지(bin % 10)는 맨 끝 자릿수(0 또는 1)다. 그래서 연산자 칸에는 %, 값 칸에는 10이 들어간다.
끝자리에 가중치 weight(1, 2, 4, …)를 곱해 더하고, bin /= 10으로 끝자리를 떼어 낸다.
끝자리부터 1, 0, 1, 0, 1, 1
1×1 + 0×2 + 1×4 + 0×8 + 1×16 + 1×32
= 53
각 자릿수가 0 또는 1뿐이라 bin % 2나 bin & 1도 끝자리 값과 같아서 결과는 같다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.