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