파이썬

Bit 연산

content0474 2024. 9. 30. 20:19

& AND : 대응하는 비트가 둘 다 1일때는 1, 그 외에는 0

1&1 ->1

1&0, 0&1, 0&0 ->0

 

ex) 5&3 =1

5 1 0 1
3 0 1 1
5&3 0 0 1

 

| OR: 대응하는 비트가 둘 다 0일때는 0, 그 외에는 1

0|0 ->0

1|0, 0|1, 1|1 ->1

 

ex) 5|3=7

5 1 0 1
3 0 1 1
5|3 1 1 1

 

 

^ XOR (exclusive or) : 대응하는 비트가 같은 값이면 0, 다른값이면 1

1^1, 0^0 ->0

1^0, 0^1-> 1

 

ex) 5^3=6

5 1 0 1
3 0 1 1
5^3 1 1 0

 

~ NOT : 0은 1로, 1은 0으로 바꾸는 연산

~0 ->1

~1->0

 

ex) ~5= -6

5 1 0 1
1의보수 0 1 0
1을 빼고 0 0 1
1의 보수 1 1 0

 

<< 왼쪽 시프트

>> 오른쪽 시프트

비트를 숫자만큼 오른쪽, 왼쪽으로 이동

 

ex)

5<<1=10

5>>1=2

5   1 0 1
5<<1 1 0 1 0

 

5 1 0 1  
5>>1 0 1 0