비트 연산자는 비트에 대해 작동하고 비트 단위 연산을 수행합니다. a =60이라고 가정합니다. 그리고 b =13; 이제 이진 형식에서 값은 각각 0011 1100 및 0000 1101이 됩니다. 다음 표는 Python 언어에서 지원하는 비트 연산자를 각각의 예와 함께 나열합니다. 우리는 위의 두 변수(a 및 b)를 피연산자로 사용합니다 -
a = 0011 1100 b = 0000 1101 ----------------- a&b = 0000 1100 a|b = 0011 1101 a^b = 0011 0001 ~a = 1100 0011
Python 언어에서 지원하는 Bitwise 연산자는 다음과 같습니다.
Sr.No | 연산자 및 설명 | 예시 |
---|---|---|
1 | &바이너리 AND 연산자는 두 피연산자 모두에 존재하는 경우 결과에 비트를 복사합니다. | (a &b) (0000 1100을 의미) |
2 | | 이진 OR 피연산자 중 하나에 존재하는 경우 비트를 복사합니다. | (a | b) =61(평균 0011 1101) |
3 | ^ 이진 XOR 하나의 피연산자에만 설정되어 있으면 비트를 복사합니다. | (a ^ b) =49(평균 0011 0001) |
4 | ~ 바이너리 OnesComplement 단항이며 비트를 '뒤집는' 효과가 있습니다. | (~a ) =-61(부호 있는 이진수로 인해 2의 보수 형식으로 1100 0011을 의미합니다. |
5 | <<이진 왼쪽 시프트 왼쪽 피연산자 값은 오른쪽 피연산자가 지정한 비트 수만큼 왼쪽으로 이동합니다. | a <<2 =240(평균 1111,000) |
6 | >> 바이너리 오른쪽 시프트 왼쪽 피연산자 값은 오른쪽 피연산자가 지정한 비트 수만큼 오른쪽으로 이동합니다. | a>> 2 =15(평균 0000 1111) |
7 | **=지수 AND 연산자에 대한 지수(제곱) 계산을 수행하고 왼쪽 피연산자에 값을 할당합니다. | c **=a는 c =c ** a와 동일합니다. |
8 | //=층 구분 연산자에 대해 바닥 나누기를 수행하고 왼쪽 피연산자에 값을 할당합니다. | c //=a는 c =c // a와 동일합니다. |
예시
#!/usr/bin/python a = 60 # 60 = 0011 1100 b = 13 # 13 = 0000 1101 c = 0 c = a & b; # 12 = 0000 1100 print "Line 1 - Value of c is ", c c = a | b; # 61 = 0011 1101 print "Line 2 - Value of c is ", c c = a ^ b; # 49 = 0011 0001 print "Line 3 - Value of c is ", c c = ~a; # -61 = 1100 0011 print "Line 4 - Value of c is ", c c = a << 2; # 240 = 1111 0000 print "Line 5 - Value of c is ", c c = a >> 2; # 15 = 0000 1111 print "Line 6 - Value of c is ", c
출력
위의 프로그램을 실행하면 다음 결과가 생성됩니다 -
Line 1 - Value of c is 12 Line 2 - Value of c is 61 Line 3 - Value of c is 49 Line 4 - Value of c is -61 Line 5 - Value of c is 240 Line 6 - Value of c is 15