정보처리기능사 실기 시험 기출 문제 - 이진 배열을 정수로 변환
추천 자료: ASP.NET Core 인증 및 권한 부여
문제
다음 C 프로그램이 실행되었을 때의 동작을 설명하고, 출력 결과를 예측하시오.
소스 코드 파일명: binary_array_to_integer_conversion.c
#include <stdio.h>
#define K 5
int main()
{
int n = 0, b[K] = { 1, 0, 1, 1, 0 }, i, j, temp;
for (i = 0; i < K; i++)
{
temp = 1;
for (j = 1; j <= K - 1 - i; j++)
temp *= 2;
n = n + b[i] * temp;
}
printf("%d", n);
return 0;
}
입력 예시
이 프로그램은 입력을 받지 않습니다.
출력 예시
22
해설
이 프로그램은 이진 배열을 정수 값으로 변환하여 출력합니다.
- 크기가
K
인 정수 배열b
가 이진수를 나타내며, 이 배열의 값은{ 1, 0, 1, 1, 0 }
로 초기화되어 있습니다. - 외부
for
루프는 배열b
의 각 요소에 대해 반복하며, 내부for
루프는 해당 요소의 가중치(2의 거듭제곱)를 계산합니다. - 배열의 각 비트에 해당하는 가중치를 곱한 후, 그 결과를 변수
n
에 누적하여 최종적으로 이진 배열을 10진수 정수로 변환합니다. - 예를 들어, 배열
{ 1, 0, 1, 1, 0 }
는 이진수로10110
을 나타내며, 이는 10진수로22
입니다.
이 프로그램은 이진수의 개념을 이해하고, 이를 정수로 변환하는 과정을 프로그래밍으로 구현하는 방법을 보여줍니다.
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!