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의 제곱만큼 적용된다.
곱셈이나 나눗셈 연산자에 비해 속도가 빠르다는 장점이 있다.
산술 연산자보다 우선순위가 낮다는 단점이 있다.
반응형