6047 : [기초-비트시프트연산] 2의 거듭제곱 배로 곱해 출력하기(설명)(py)
입력값 |
정수 2개(a, b)가 공백을 두고 입력된다. 0 <= a, b <= 10 |
출력값 |
a 를 2의b제곱 배 만큼 곱한 값을 출력한다. |
입력 예시 |
1 3 |
출력 예시 |
8 |
정답 및 가능한 정답
a,b=map(int,input().split())
print(a<<b)
a,b=map(int,input().split())
print(a*(2**b))
해설
비트 시프트 연산자
<< : 모든 비트를 지정한 수만큼 왼쪽으로 이동. 이동된 비트 자리에는 0으로 채워짐(비트 1번 이동 당 2배)
>> : 모든 비트를 지정된 수만큼 오른쪽으로 이동. 밀려난 오른쪽 비트는 삭제됨. (비트 1번당 1/2배, 나머지는 사라짐)
ex) 13>>2는 3
(0b1101 -> 0b11)
ex) 13<<2는 52
(0b1101 -> 0b110100)
이 문제에서는 a를 2의 b제곱만큼 곱하라고 했으니 a의 비트를 b번 왼쪽으로 이동시키면 된다.
print(a<<b)