Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬 비트 연산자

<시간/>

비트 연산자는 비트에 대해 작동하고 비트 단위 연산을 수행합니다. 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