정수 한 개를 입력했을 때 2배 곱해 출력해보자.
정수 한 개를 입력했을 때 2배 곱해 출력해보자.
정수 한 개가 입력된다.
(단, -1073741824 ~ 1073741823)
2배 곱한 정수의 값이 출력된다.
1024
2048
*2 값을 출력해도 되지만,
비트시프트연산자 <<, >> 는 정수를 2배로 곱하거나 나누어 계산해 준다.
2진수 형태로 저장되어있는 값들을 왼쪽(<<)이나 오른쪽(>>)으로 지정한 비트 만큼 밀어주어 2배가 늘어나거나 반으로 줄어드는데
왼쪽 비트시프트(<<)가 될 때에는 오른쪽에 0 이 주어진 수 만큼 추가되고,
오른쪽 비트시프트(>>)가 될 때에는 왼쪽에 0(0 또는 양의 정수인 경우) 이나 1(음의 정수인 경우)이 주어진 수 만큼 추가된다.
범위(32비트)를 넘어가 이동되는 비트는 삭제된다.
예시
int a=10;
printf("%d", a<<1); //20 이 출력된다.
printf("%d", a>>1); //5 가 출력된다.
printf("%d", a<<2); //40 이 출력된다.
printf("%d", a>>2); //2 가 출력된다.