프로그래밍/Python

[Python] 비트 연산자의 이해 (2) bit shift

베린이 2023. 11. 14. 13:44
반응형

비트연산자의 종류는 지난 글에서 설명을 드렸는데요, AND OR XOR NOT은 쉽게 이해할 수 있을 것 같아서 bit shift 연산자에 대해 설명해볼까 합니다.

2023.11.10 - [프로그래밍/Python] - [Python] 연산자의 종류와 사용 예시

 

[Python] 연산자의 종류와 사용 예시

- 산술 연산자의 종류 = 대입 a = 10 + 더하기 a = 5 + 3 (8) - 빼기 a = 5 - 3 (2) * 곱하기 a = 5 * 3 (15) / 나누기 a = 5 / 3 (1.666666) // 몫 a = 5 // 3 (1) % 나머지 값 a = 5 % 3 (2) ** 제곱 a = 5 ** 3 (125) 일반적인 사칙연

veriln-e.tistory.com

 

- bit shift 사용법

비트 shift는 왼쪽(<<)과 오른쪽(>>)으로 이동할 수 있습니다.

 

 

위 그림은 0x17을 왼쪽 shift, 오른쪽 shift를 실행한 결과입니다. 이해가 되시나요??

또한 bit shift는 곱셈, 나눗셈을 의미하기도 합니다.

n bit left shift: 2n 곱하기

n bit rifht shift: 2n 나누기

위의 그림의 예시를 볼까요?? 23을 1 left shift를 하면 101110 = 46이 되고 1 right shift를 하면 1011 = 11이 됩니다. 그럼 예시 코드로 확인해봅시다.

result = 0x17
result = result << 2
print("result = 0x%x" % result)
result |= 0x1 << 1
print("result = 0x%x" % result)