Python ตัวดำเนินการ Bitwise [พร้อมตัวอย่าง]

เผยแพร่แล้ว: 2022-09-11

ตัวดำเนินการ Bitwise ถูกจัดเตรียมโดยภาษาการเขียนโปรแกรม Python เพื่อให้โปรแกรมเมอร์สามารถจัดการข้อมูลในระดับพื้นฐานที่สุด ทำให้พวกเขาสามารถควบคุมตัวแปรทั้งหมดได้มากขึ้น

Python เป็นหนึ่งในภาษาโปรแกรมที่ได้รับความนิยมมากที่สุดในโลกปัจจุบัน ความเก่งกาจของ Python และจำนวนของคุณสมบัติที่นำเสนอเป็นเหตุผลบางประการสำหรับความนิยมที่เพิ่มขึ้น บทความนี้จะกล่าวถึงตัวดำเนินการ Bitwise ใน Python ตัวดำเนินการระดับบิตประเภทต่างๆ การใช้งาน และอื่นๆ อีกมากมาย

สารบัญ

ภาพรวมของตัวดำเนินการระดับบิตของ Python

ตัวดำเนินการ Bitwise จะมีลักษณะเหมือนกันในภาษาการเขียนโปรแกรมต่างๆ Python มาพร้อมกับตัวดำเนินการหลายประเภท เช่น ตัวดำเนินการเลขคณิต ตรรกะ และการเปรียบเทียบ

โอเปอเรเตอร์ ตัวอย่าง ความหมาย
& เอ แอนด์ บี Bitwise และ
| a | Bitwise OR
^ ก ^ ข Bitwise XOR (เฉพาะ OR)
~ ~a Bitwise ไม่
<< << น เลื่อนซ้ายระดับบิต
>> ก >> น เลื่อนขวาระดับบิต

ตัวดำเนินการระดับบิตส่วนใหญ่เป็นเลขฐานสอง ซึ่งหมายความว่าต้องใช้ตัวถูกดำเนินการสองตัวเพื่อใช้งาน โดยทั่วไปจะเรียกว่าตัวถูกดำเนินการด้านซ้ายและขวา Bitwise NOT (~) เป็นโอเปอเรเตอร์บิตเดียวที่เป็นเอกภาคเพียงตัวเดียว เนื่องจากต้องการตัวถูกดำเนินการเพียงตัวเดียว

สำรวจหลักสูตรวิทยาศาสตร์ข้อมูลยอดนิยมของเรา

Executive Post Graduate Program in Data Science จาก IIITB หลักสูตรประกาศนียบัตรวิชาชีพด้านวิทยาศาสตร์ข้อมูลเพื่อการตัดสินใจทางธุรกิจ วิทยาศาสตรมหาบัณฑิต สาขา Data Science จาก University of Arizona
หลักสูตรประกาศนียบัตรขั้นสูงด้าน Data Science จาก IIITB หลักสูตรประกาศนียบัตรวิชาชีพด้าน Data Science และ Business Analytics จาก University of Maryland หลักสูตรวิทยาศาสตร์ข้อมูล

ตัวดำเนินการ Bitwise คืออะไร?

ตัว ดำเนินการระดับบิตเป็นหนึ่งในประเภทของตัวดำเนินการที่ใช้ในการคำนวณระดับบิตสำหรับจำนวนเต็ม จำนวนเต็มจะถูกแปลงเป็นเลขฐานสองก่อนแล้วจึงดำเนินการทีละบิต ดังนั้นชื่อตัวดำเนินการระดับบิต ผลลัพธ์จะเปลี่ยนเป็นรูปแบบทศนิยม ตัวดำเนินการเหล่านี้สามารถคำนวณเฉพาะจำนวนเต็มเท่านั้น

ตรวจสอบใบรับรองวิทยาศาสตร์ข้อมูลของเราเพื่อเพิ่มทักษะให้กับตัวคุณเอง

ความสำคัญของตัวดำเนินการระดับบิต

คุณอาจเข้าใจว่าตัวดำเนินการระดับบิตคืออะไร ตอนนี้ มาเน้นที่ความสำคัญของตัวดำเนินการระดับบิตกัน ดีกว่าตัวดำเนินการเลขคณิตและนี่คือสาเหตุที่คุณต้องใช้:

  • ความเร็วในการดำเนินการ

ตัวดำเนินการระดับบิตนั้นเร็วกว่าการคูณหรือหาร หากคุณต้องการคูณตัวแปร x ด้วย 9 คุณสามารถทำได้ (x<<3 + x) ซึ่งจะเร็วกว่า (x*9) สองสามรอบ

  • ข้อผิดพลาดในการตรวจสอบ

ตัวดำเนินการระดับบิตถูกใช้อย่างกว้างขวางสำหรับการตรวจสอบข้อผิดพลาด หากคุณกำลังส่งออกบิตไปยังคอมพิวเตอร์เครื่องอื่นบนเซิร์ฟเวอร์อื่น อาจมีข้อผิดพลาดบางประการ คุณสามารถระบุข้อผิดพลาดเหล่านี้ได้โดยใช้ตัวดำเนินการระดับบิต

คุณอาจเข้าใจการใช้งานและความสำคัญของตัวดำเนินการระดับบิต ดังนั้น เรามาทำความเข้าใจเกี่ยวกับตัวดำเนินการระดับบิตประเภทต่างๆ กัน

ตัวดำเนินการระดับบิตประเภทต่างๆ

ตัวดำเนินการเชิงตรรกะระดับบิต

ตัวดำเนินการระดับบิต และ หรือ และ xor คือตัวดำเนินการไบนารีที่มีตัวถูกดำเนินการด้านซ้ายและขวา ตัวดำเนินการระดับบิตไม่ใช่ตัวถูกดำเนินการเดี่ยวที่มีตัวถูกดำเนินการที่ถูกต้องเท่านั้น ชนิดผลลัพธ์ของตัวดำเนินการระดับบิตทั้งสี่ตัวเป็นจำนวนเต็ม ตัวดำเนินการเชิงตรรกะระดับบิตจะตรวจสอบทีละบิตในตัวถูกดำเนินการก่อน และคำนวณค่าที่สอดคล้องกันในผลลัพธ์

Bitwise และ

ตัวดำเนินการ AND (&) ใช้เพื่อดำเนินการ AND ระหว่างสองบิต ในกรณีนี้ ทั้งสองบิตจะต้องเป็นจริงเพื่อให้เอาต์พุตเป็นจริง หากบิตใดบิตหนึ่งเป็นเท็จ เอาต์พุตจะเป็นเท็จ กล่าวอีกนัยหนึ่งถ้าทั้งสองบิตเป็น 1 จะส่งกลับ 1 อื่น 0

1&1 = 1

1&0 = 0

0&0 = 0

0&1 = 0

ตัวอย่าง:

a = 10 = 1,010 (ไบนารี)

b = 4 = 0100 (ไบนารี)

a & b = 1010

&

0100

= 0000

= 0 (ทศนิยม)

Bitwise OR

ตัวดำเนินการ OR (|) ใช้เพื่อดำเนินการ OR ระหว่างสองบิต เพื่อให้ผลลัพธ์เป็นจริง บิตหนึ่งต้องเป็นจริง ต่างจากตัวดำเนินการ (&) ทั้งสองบิตไม่จำเป็นต้องเป็นจริงเพื่อให้ผลลัพธ์เป็นจริง กล่าวอีกนัยหนึ่ง บิตที่เป็นผลลัพธ์จะเป็น 0 ก็ต่อเมื่อทั้งสองบิตที่พิจารณาเป็น 0 มิฉะนั้น ผลลัพธ์จะเป็น 1

1 | 1 = 1

1 | 0 = 1

0 | 1 = 1

0 | 0 = 0

ตัวอย่าง:

a = 10 = 1,010 (ไบนารี)

b = 4 = 0100 (ไบนารี)

a | ข = 1,010

|

0100

= 1110

= 14 (ทศนิยม)

Bitwise ไม่

ตัวดำเนินการ Bitwise NOT (~) ใช้สำหรับส่งคืนส่วนเสริมของตัวเลขใน Python อย่างไรก็ตาม ตัวดำเนินการ not เป็นโอเปอเรเตอร์ที่ง่ายมาก และใช้เพื่อพลิกบิตจาก 0 เป็น 1 และจาก 1 เป็น 0

~13 (0b01101) = -14

~16 (0b0100000) = -17

~31 (0b011111) = -32

ตัวอย่าง:

a = 10 = 1,010 (ไบนารี)

~a = ~1010

= - (1010 + 1)

= - (1011)

= -11 (ทศนิยม) ตัวดำเนินการ XOR ระดับบิต

ตัวดำเนินการ XOR (^) ใช้กับ XOR ระหว่างสองบิตที่อยู่ภายใต้การดำเนินการ การดำเนินการ XOR นั้นง่ายมาก ถ้าสองบิตเหมือนกัน บิตที่ได้จะเป็น 0 อย่างอื่น 1 มีการใช้กันอย่างแพร่หลายในการคำนวณเชิงตรรกะเพื่อทำให้กระบวนการเร็วขึ้น

1 ^ 1 = 0

1 ^ 0 = 1

0 ^ 1 = 1

0 ^ 0 = 0

ตัวอย่าง:

a = 10 = 1,010 (ไบนารี)

b = 4 = 0100 (ไบนารี)

a & b = 1010

^

0100

= 1110

= 14 (ทศนิยม)

ตัวดำเนินการกะ

ตัวดำเนินการระดับบิต เหล่านี้ ใช้เพื่อเลื่อนบิตของตัวเลขจากซ้ายไปขวาโดยการคูณหรือหารตัวเลขด้วยสองตามลำดับ สามารถใช้เมื่อเราต้องหารหรือคูณตัวเลขด้วยสอง

Bitwise ขวา Shift

โอเปอเรเตอร์ด้านขวา (>>) ตามชื่อจะเลื่อนบิตไปทางขวาเป็นตัวเลขที่แสดงทางด้านขวาของโอเปอเรเตอร์

อ่านบทความวิทยาศาสตร์ข้อมูลยอดนิยมของเรา

เส้นทางอาชีพ Data Science: คู่มืออาชีพที่ครอบคลุม การเติบโตของอาชีพ Data Science: อนาคตของการทำงานอยู่ที่นี่ เหตุใด Data Science จึงมีความสำคัญ 8 วิธีที่ Data Science นำคุณค่ามาสู่ธุรกิจ
ความเกี่ยวข้องของวิทยาศาสตร์ข้อมูลสำหรับผู้จัดการ แผ่นโกงวิทยาศาสตร์ข้อมูลขั้นสูงสุดที่นักวิทยาศาสตร์ข้อมูลทุกคนควรมี 6 เหตุผลที่คุณควรเป็นนักวิทยาศาสตร์ข้อมูล
วันหนึ่งในชีวิตของ Data Scientist: พวกเขาทำอะไร? Myth Busted: Data Science ไม่ต้องการการเข้ารหัส Business Intelligence vs Data Science: อะไรคือความแตกต่าง?

ตัวอย่างเช่น – 10>>2 จะเลื่อน (1010) ไปทางขวา 2

ตัวอย่างที่ 1:

a = 10 = 0000 1010 (ไบนารี)

ก >> 1 = 0000 0101 = 5

ตัวอย่างที่ 2:

a = -10 = 1111 0110 (ไบนารี)

ก >> 1 = 1111 1011 = -5

Bitwise Shift ซ้าย

โอเปอเรเตอร์ด้านซ้าย (<<) ตามชื่อจะเลื่อนบิตไปทางซ้ายเป็นตัวเลขที่แสดงทางด้านขวาของโอเปอเรเตอร์

ตัวอย่างเช่น – 1<< 2 จะเลื่อน 1 ไปทางซ้ายสำหรับ 2 ค่า

ตัวอย่างที่ 1:

a = 5 = 0000 0101 (ไบนารี)

<< 1 = 0000 1010 = 10

<< 2 = 0001 0100 = 20

ตัวอย่างที่ 2:

b = -10 = 1111 0110 (ไบนารี)

ข << 1 = 1110 1100 = -20

ข << 2 = 1101 1,000 = -40

อ่านบทความวิทยาศาสตร์ข้อมูลยอดนิยมของเรา

เส้นทางอาชีพ Data Science: คู่มืออาชีพที่ครอบคลุม การเติบโตของอาชีพ Data Science: อนาคตของการทำงานอยู่ที่นี่ เหตุใด Data Science จึงมีความสำคัญ 8 วิธีที่ Data Science นำคุณค่ามาสู่ธุรกิจ
ความเกี่ยวข้องของวิทยาศาสตร์ข้อมูลสำหรับผู้จัดการ แผ่นโกงวิทยาศาสตร์ข้อมูลขั้นสูงสุดที่นักวิทยาศาสตร์ข้อมูลทุกคนควรมี 6 เหตุผลที่คุณควรเป็นนักวิทยาศาสตร์ข้อมูล
วันหนึ่งในชีวิตของ Data Scientist: พวกเขาทำอะไร? Myth Busted: Data Science ไม่ต้องการการเข้ารหัส Business Intelligence vs Data Science: อะไรคือความแตกต่าง?

บทสรุป

การมีความเข้าใจที่ดีเกี่ยวกับ ตัวดำเนินการระดับบิตของ python จะช่วยให้คุณจัดการข้อมูลไบนารีในโปรเจ็กต์ของคุณได้ ตอนนี้คุณเข้าใจพื้นฐานของตัวดำเนินการระดับบิตและไวยากรณ์และประเภทข้อมูลที่รองรับแล้ว คุณยังสามารถปรับแต่งพฤติกรรมของพวกเขาตามความต้องการของคุณได้

หากคุณอยากที่จะเรียนรู้และเพิ่มพูนความรู้ของคุณเกี่ยวกับ python และตัวดำเนินการระดับบิต ให้ตรวจสอบ upGrad's & University of Maryland's Professional Certificate Program in Data Science and Business Analytics ซึ่งสร้างขึ้นสำหรับมืออาชีพด้านการทำงานที่มีกรณีศึกษามากกว่า 20 กรณีและงานที่มอบหมาย เพิ่มในพอร์ตโฟลิโอของคุณ เซสชันสดมากกว่า 100 ชั่วโมง การเรียนรู้มากกว่า 400 ชั่วโมงพร้อมความช่วยเหลือด้านงานจากบริษัทชั้นนำ

ตัวดำเนินการระดับบิตใช้ที่ไหน

ตัวดำเนินการระดับบิตสามารถใช้เพื่อจัดการกับแต่ละบิตของตัวเลขได้ ใน Python ตัวดำเนินการระดับบิตจะทำการคำนวณระดับบิตกับจำนวนเต็ม ขั้นแรก จำนวนเต็มจะถูกแปลงเป็นเลขฐานสอง จากนั้นดำเนินการเป็นชิ้นเล็ก ๆ - นี่คือวิธีที่ตัวดำเนินการระดับบิตได้ชื่อมา ตัวดำเนินการระดับบิตของ Python ใช้กับจำนวนเต็มเท่านั้น โดยส่งคืนผลลัพธ์ในรูปแบบทศนิยม

ตัวดำเนินการตัวถูกดำเนินการเดี่ยวคืออะไร?

ตัวดำเนินการเลขคณิตดำเนินการทางคณิตศาสตร์เช่นการบวกและการลบด้วยตัวถูกดำเนินการ Unary และ binary เป็นโอเปอเรเตอร์ทางคณิตศาสตร์สองประเภท ตัวดำเนินการ Unary ทำหน้าที่ด้วยตัวถูกดำเนินการตัวเดียว เช่น Bitwise NOT (~) ในขณะที่ตัวดำเนินการไบนารีใช้ตัวถูกดำเนินการสองตัว

เหตุใดเราจึงต้องการตัวดำเนินการระดับบิต

ตัวดำเนินการ Bitwise เป็นวิธีที่ยอดเยี่ยมในการใช้พื้นที่อย่างมีประสิทธิภาพเมื่อแสดงข้อมูล โอเปอเรเตอร์เหล่านี้มีความจำเป็นเมื่อต้องดำเนินการกับข้อมูลที่ได้รับจากฮาร์ดแวร์ซึ่งมีบิตเฉพาะในโลกที่มีความหมาย ตัวดำเนินการระดับบิตจำเป็นสำหรับการบันทึกหน่วยความจำ การบรรจุข้อมูลเป็นบิตแทนที่จะเป็นคำช่วยประหยัดหน่วยความจำ และบ่อยครั้งคุณอาจมีข้อมูลจำนวนมากและมีหน่วยความจำจำกัด