코드업 C언어 기초 100제에서 [기초-비트시프트] 풀기
(단, 비트단위시프트연산자를 사용하는 것을 원칙으로 한다.)
#include <stdio.h>
int main() {
int a;
scanf("%d", &a);
printf("%d", a<<1);
return 0;
}
만약에 a가 10이라면? (10은 2비트로 1010으로 표현)
a<<1 -> 10100 (왼쪽으로 이동) / 20 (*2^1)
a>>1 -> 101 (오른쪽으로 이동) / 5 (*2^-1)즉, 비트연산자 다음에 나오는 숫자만큼 2의 n승을 곱하는 것.
※ 이름이 '비트시프트연산자'임을 잊지 말 것.
(단, 0 <= a <= 10, 0 <= b <= 10이다.)
#include <stdio.h>
int main() {
int a, b;
scanf("%d %d", &a, &b);
printf("%d", a<<b);
return 0;
}
1) 쉽긴 하지만 막상 의미를 모른 상태에서 만나면 이해조차 못할 수 있으니 잘 알아두자.