코드업(CodeUp) 풀이/C언어 기초 100제

코드업[CodeUp] (C) 1047번 풀이

개발윗미 2021. 8. 20. 11:38

C로 구현한 1047번 정수 1개 입력받아 2배 곱해 출력하기 문제 풀이입니다.

 

https://codeup.kr/problem.php?id=1047 

 

[기초-비트시프트연산] 정수 1개 입력받아 2배 곱해 출력하기(설명)

C언어기초100제v1.2 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요.  - 모든 내용

codeup.kr


#include <stdio.h>

int main() {
	int input;
	scanf("%d", &input);
	printf("%d", input<<1);
}

 

정수 1개를 입력받아 2배 곱해 출력한다. 출력 시 입력받은 정수 값 * 2 를 연산하여 출력해도 되지만 

 

정수를 2배로 곱하거나 나누어 계산해주는 비트단위 시프트 연산자 << 혹은 >> 를 이용하여 연산처리할 수 있다.

 

비트단위 시프트 연산자를 사용하는 방법은 아래와 같다.

#include <stdio.h>

int main() {

      int a = 10; // a가 10일 때

      printf("%d", a << 1); // 10을 2배 연산한 값인 20 이 출력된다.
      printf("%d", a >> 1); // 10을 반으로 나눈 값인 5 가 출력된다.
      printf("%d", a << 2); // 10을 4배 연산한 값인 40이 출력된다.
      printf("%d", a >> 2); // 10을 반으로 나눈 후 다시 반으로 나눈 값인 2가 출력된다.
 }