본문 바로가기
python/python

[python] 비트 연산자

by ilp 2024. 8. 10.
반응형

비트 연산자

: 이진수(bit)로 표현한 숫자에 대해 비트 단위로 연산을 수행하는 연산자


1. AND ('&')

두 비트가 모두 1일때 결과가 1이 된다, 하나라도 0이면 0이다.

a=13 # 1101
b=11 # 1011
print(a&b) #1001
a 1 1 0 1
b 1 0 1 1
a & b 1 0 0 1

위 표를 보면 이진수의 비교를 쉽게 이해할 수 있다. 첫번째 비트 연산자여서 표를 작성해 보았다


2. OR ('|')

두 비트중 하나라도 1이면 결과는 1이다. 둘다 0이면 0이다.

a = 13 #1101
b = 11 #1011
print(a|b)  #1111

3. XOR ('^')

두 비트가 서로 다르면 1, 같으면 0이다.

a = 13  # 1101
b = 11  # 1011
print(a ^ b)  # 0110

4. 비트 NOT ('~')

not은 따로 다루겠다.


5. 왼쪽 시프트 ('<<')

왼쪽으로 지정된 수만큼 이동시킨다. 오른쪽에는 0이 채워진다. / 곰셈과 비슷하다.

한비트 이동할때마다 숫자가 2배씩 증가한다.

a = 11  # 1011
print(a<<2)  #101100 44

 


6. 오른쪽 시프트 ('>>')

이 주제는 다른 글에서 다루겠다.


 

참고

not, 오른쪽 시프트는 내용이 길어질 것같아서 다른 글에서 다루겠다.


반응형