Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python ตัวดำเนินการ Bitwise


ตัวดำเนินการ Bitwise ทำงานบนบิตและดำเนินการทีละบิต สมมติว่า 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

มีตัวดำเนินการ Bitwise ต่อไปนี้รองรับโดยภาษา Python

ซีเนียร์ ตัวดำเนินการ &คำอธิบาย ตัวอย่าง
1 &ไบนารีและ
ตัวดำเนินการคัดลอกบิตไปยังผลลัพธ์หากมีอยู่ในตัวถูกดำเนินการทั้งสอง
(a &b) (หมายถึง 0000 1100)
2 | ไบนารี OR
มันคัดลอกเล็กน้อยถ้ามีอยู่ในตัวถูกดำเนินการอย่างใดอย่างหนึ่ง
(a | b) =61 (หมายถึง 0011 1101)
3 ^ ไบนารี XOR
มันคัดลอกบิตหากตั้งค่าไว้ในตัวถูกดำเนินการตัวเดียว แต่ไม่ใช่ทั้งสองอย่าง
(a ^ b) =49 (หมายถึง 0011 0001)
4 ~ Binary Ones Complement
เป็นเอกภาพและมีผลกระทบจากการ 'พลิก' บิต
(~a ) =-61 (หมายถึง 1100 0011 ในรูปแบบเสริมของ 2 เนื่องจากเลขฐานสองที่มีลายเซ็น
5 <<กะไบนารีซ้าย
ค่าตัวถูกดำเนินการทางซ้ายจะถูกย้ายไปทางซ้ายตามจำนวนบิตที่ระบุโดยตัวถูกดำเนินการทางขวา
a <<2 =240 (หมายถึง 1111 0000)
6 >> ไบนารีกะขวา
ค่าตัวถูกดำเนินการทางซ้ายจะถูกย้ายไปทางขวาตามจำนวนบิตที่ระบุโดยตัวถูกดำเนินการทางขวา
a>> 2 =15 (หมายถึง 0000 1111)
7 **=เลขชี้กำลังและ
ทำการคำนวณเลขชี้กำลัง (กำลัง) กับตัวดำเนินการและกำหนดค่าให้กับตัวถูกดำเนินการทางซ้าย
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