정보처리기능사 실기 시험 기출 문제 - 비트 우측 시프트 연산
추천 자료: ASP.NET Core 인증 및 권한 부여
문제
다음 C 프로그램이 실행되었을 때의 동작을 설명하고, 출력 결과를 예측하시오.
소스 코드 파일명: bitwise_right_shift_operation.c
#include <stdio.h>
main() {
int num = 1640;
printf("%d", num >> 3);
}
입력 예시
이 프로그램은 입력을 받지 않습니다.
출력 예시
205
해설
이 프로그램은 정수 변수 num
을 초기화한 후, 이 변수에 대해 비트 우측 시프트 연산을 수행하고 그 결과를 출력합니다.
int num = 1640;
는 정수 변수num
을 선언하고 1640으로 초기화합니다.printf("%d", num >> 3);
는num
에 대해 3비트 우측 시프트 연산을 수행하고, 그 결과를 정수 형식으로 출력합니다. 비트 우측 시프트 연산자>>
는 변수의 비트 값을 지정된 횟수만큼 우측으로 이동시킵니다. 이 경우,num
의 이진 표현을 3비트 우측으로 이동시키는 것입니다.
비트 우측 시프트 연산은 각 비트를 우측으로 지정된 수만큼 이동시키고, 새로 생기는 비트는 0으로 채워집니다. 이 연산은 실질적으로 변수의 값을 2의 거듭제곱으로 나누는 것과 동일한 효과를 가집니다. 예를 들어, 1640을 2의 3제곱(8)으로 나누면 결과는 205가 됩니다.
이 프로그램은 비트 우측 시프트 연산을 사용하여 정수 값을 효율적으로 나누는 방법을 보여줍니다.
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!