파이썬
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 |