ideal insane

Resistance ∙ Pioneer ∙ 생산자

Algorithm/CodeUp - Python

기초 100제 - 1047 : [기초-비트시프트연산] 정수 1개 입력받아 2배 곱해 출력하기(설명)

Idealinsane 2019. 12. 10. 00:35
728x90


비트시프트연산자는 2진수에서 자리수 이동을 계산해준다.

십진수로 5인 '0101'에 '<<1' 연산을 하면 자리수를 왼쪽으로 한칸씩 이동해 십진수 10인 '1010'이 된다.

위 문제의 그림을 보면 이해하기 쉽다. '<<n'이면 n번 왼쪽으로 이동한다.

따라서 2배 곱한 정수를 출력하기 위해 '<<1'연산을 하면 된다.

테스트 케이스 결과:


오른쪽 비트시프트 '>>'는 연산자 좌측 값에 '*1/2' 연산을 우측 값만큼 한다고 생각할 수 있는데,

위 문제 그림에 마지막 a>>2 를 보면 뒤에 이진수 '10'이 밀려난 것을 볼 수 있다.

소수점으로 판단해 '0.5'로 생각할 수도 있는데 결과가 '2'인 것으로 보아 시프트 연산으로 밀려난 1 미만의 부분은 폐기되는 것으로 보인다.

반응형