문제 번호 1051. -- [문법-비트시프트연산] 정수 한 개 입력받아 2배 곱해 출력하기

1051: [문법-비트시프트연산] 정수 한 개 입력받아 2배 곱해 출력하기

시간 제한: 1 Sec  메모리 제한: 128 MB
제출: 88  해결 문제 수: 74
[제출][채점 상황 열람][게시판]

문제 설명

정수 한 개를 입력했을 때 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 가 출력된다.


출처

[제출][채점 상황 열람]