본문 바로가기
IT/Programming_프로그래밍

[파이썬 / Python] 이진시프트(Binary Shift)를 이용하여 2의 승수 곱하기

by 무브영/movewoo0 2022. 5. 8.
728x90
반응형

안녕하세요. 이번 포스팅에서는 파이썬의 이진시프트(Binary Shift)를 이용하여 2의 승수를 곱하는 방법을 알아보겠습니다. 

 

 


 

 

0. 파이썬의 이진시프트

 

컴퓨터에서는 어떠한 값을 표현하기 위해 0,1의 조합인 이진법으로 표현합니다. 

가령 우리가 평소에 사용하는 10 이라는 수는 이진수 1010로 표현됩니다. 

 

정수(십진법) :10
이진법 : 1010

 

이진법의 형식을 사용할 때, 각 자리는 2의 배수로 늘어납니다. 두번째 자리는 2의 1승인 2인 것처럼입니다. 

 

파이썬에서는 이진시프트(Binary Shift)라는 연산을 제공합니다. 

이 연산은 특정 비트의 자리 수를 추가하거나 제거하는 역할을 합니다.

 

 

1010 이라는 수가 있을 때, 왼쪽 시프트(<<) 연산을 하게 되면 주어진 숫자만큼 뒤에 0이 추가됩니다.

이는 주어진 숫자만큼의 2의 승수를 곱하는 효과를 냅니다. 

1010 << 2 = 101000

 

오른쪽 시프트(<<) 연산을 하게 되면 주어진 숫자만큼 뒤의 자리수가 제거됩니다. 

이는 주어진 숫자만큼의 2의 승수를 나누는 효과를 냅니다. 

1010 >> 2 = 10

 

 

728x90

 

1. 파이썬의 이진시프트 코드

 

파이썬 코드를 통해서 알아봅니다. 

 

주어진 정수 n=10이 있을 때, 각각의 왼쪽/오른쪽 시프트 연산을 실행해봅니다. 

주석으로 결과값을 써놓았으니 참고하시면 되겠습니다. 

 

위와 같이 순서대로 왼쪽시프트 1 (n << 1) 연산은 2의 1승인 2를 곱하는 연산이며,

오른쪽시프트 2 (n >> 2) 연산은 2의 -2승인 1/4 을 곱하는 결과적으로 나눗셈 연산이 적용됩니다. 

 

 


본 포스팅의 내용 및 이미지를 무단 전재, 재배포 또는 복사를 금지합니다.

인용 시 출처와 같이 공개해주세요!

도움이 되셨다면 댓글 또는 공감 부탁드립니다!

 

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받을 수 있습니다.

 

728x90
반응형

댓글