Algorithm/CodeUp 기초 100제

[코드업 기초 100제] - 1047번

코딩하는 붕어 2021. 2. 4. 00:43
반응형

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

 

 

문제) 정수 1개를 입력받아 2배 곱해 출력해보자.

입력 출력
1024 2048

 

#include <stdio.h>

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

제목이 비트시프트 연산이라서 비트시프트 연산으로 풀었음

 

★비트시프트 연산이란?

시프트 연산자는 <<과 >> 두가지 종류가 있고 왼쪽 또는 오른쪽 방향으로 비트를 이동시킨다.

<<을 통해 곱셈을 수행하고 >>를 통해 나눗셈을 수행한다.

(모든 곱셈과 나눗셈을 수행할 순 없고 2ⁿ을 곱하거나 나누는 것만 수행할 수 있다)

비트 패턴이 2진수로 이루어져 있기 때문에 비트 이동 시 2의 제곱만큼 적용된다.

곱셈이나 나눗셈 연산자에 비해 속도가 빠르다는 장점이 있다.

산술 연산자보다 우선순위가 낮다는 단점이 있다.

반응형