ตัวดำเนินการ Bitwise ใน C [พร้อมตัวอย่างการเข้ารหัส]
เผยแพร่แล้ว: 2020-10-26สารบัญ
บทนำ
โอเปอเรเตอร์เป็นองค์ประกอบสำคัญของทุกภาษาการเขียนโปรแกรม เป็นสัญลักษณ์ที่ใช้เพื่อให้บรรลุการดำเนินการทางตรรกะ คณิตศาสตร์ หรือโปรแกรมอื่นๆ C จัดเตรียมโอเปอเรเตอร์ที่หลากหลายสำหรับการดำเนินการหลายอย่าง เช่น การคำนวณทางคณิตศาสตร์ ตรรกะ และการจัดการบิต มีโอเปอเรเตอร์ที่แตกต่างกันแปดประเภทใน C. เหล่านี้คือ:
- ตัวดำเนินการเลขคณิตในC
- ตัวดำเนินการเชิงตรรกะในC
- ตัวดำเนินการแบบมีเงื่อนไขใน C
- ตัวดำเนินการเชิงสัมพันธ์ในC
- ตัวดำเนินการเพิ่มและลดใน C
- ตัวดำเนินการ Bitwise ใน C
- ผู้ปฏิบัติงานที่ได้รับมอบหมายในC
- เจ้าหน้าที่ปฏิบัติการพิเศษใน C
ในบทความนี้ คุณจะได้เรียนรู้เกี่ยวกับตัว ดำเนินการ Bitwise ใน C และวิธีใช้งาน
ตัวดำเนินการ Bitwise คืออะไร?
ตัว ดำเนินการ Bitwise ใน C เป็นประเภทของโอเปอเรเตอร์ที่ทำงานบนอาร์เรย์บิต สตริงบิต และการปรับแต่งค่าไบนารีด้วยแต่ละบิตที่ระดับบิต สำหรับการจัดการอุปกรณ์อิเล็กทรอนิกส์และการทำงานที่เกี่ยวข้องกับ IoT โปรแกรมเมอร์ใช้ตัวดำเนินการระดับบิต สามารถทำงานได้เร็วขึ้นในระดับบิต
ตัว ดำเนินการ Bitwise ใน C ดำเนินการกับแต่ละบิตของตัวถูกดำเนินการ โดยที่ตัวถูกดำเนินการคือค่าหรือนิพจน์ที่ตัวดำเนินการดำเนินการ โอเปอเรเตอร์เหล่านี้ยังใช้เพื่อดำเนินการหลักเช่นเดียวกับการดำเนินการทางคณิตศาสตร์ระดับสูงที่ต้องการการสนับสนุนโดยตรงจากโปรเซสเซอร์ เราสามารถแบ่งย่อยตัวดำเนินการระดับบิตได้เป็นสามประเภทย่อยตามหลักการทำงาน ตรรกะ (ระดับบิต AND, OR และ XOR), Shift (กะขวาและกะซ้าย) และส่วนประกอบ (ไม่ระดับบิต)
มีตัว ดำเนินการ Bitwise ที่แตกต่างกันหกตัวใน C เหล่านี้คือ:
· Bitwise และตัวดำเนินการ (&)

· ตัวดำเนินการ Bitwise OR (|)
·ตัวดำเนินการ OR พิเศษเฉพาะระดับ Bitwise (^)
· ตัวดำเนินการเสริมของ Binary One หรือตัวดำเนินการ Bitwise NOT (~)
·ตัวดำเนินการกะ Bitwise ซ้าย (<<)
· ตัวดำเนินการกะ Bitwise ขวา (>>)
การใช้ตัวดำเนินการระดับบิต โปรแกรมเมอร์สามารถเปลี่ยนแต่ละบิตของค่าใดๆ ที่มีอยู่ในตัวถูกดำเนินการได้ เราสามารถดูหน่วยความจำคอมพิวเตอร์ไบต์เดียวเป็น 8 บิตที่แสดงถึงสถานะจริงหรือเท็จของ 8 แฟล็ก ตัวดำเนินการระดับบิตมักใช้เพื่อกำหนดค่าแฟล็กในระบบปฏิบัติการและซอฟต์แวร์ไดรเวอร์ ตัวอย่างเช่น ในคุณสมบัติไฟล์ โหมดอ่านอย่างเดียวจะแสดงตามแนวคิดเป็นแฟล็กบิตในระบบปฏิบัติการ และตัวดำเนินการระดับบิตใช้เพื่อสลับระหว่างค่าจริงและค่าเท็จ
นี่คือตารางที่แสดงให้เห็นว่าการคำนวณตัวดำเนินการระดับบิตนั้นให้ผลลัพธ์อย่างไร
X | y | x & y | x | y | x ^ y |
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
Bitwise Operators ใน C มี ทั้งหมด 6 ประเภท เหล่านี้คือ:
Bitwise และ (&) ใน C: คอมไพเลอร์ C รู้จักตัวดำเนินการ Bitwise AND with & ใช้ตัวถูกดำเนินการสองตัวและดำเนินการ AND สำหรับทุกบิตของตัวเลขตัวถูกดำเนินการสองตัว มันเป็นตัวดำเนินการไบนารี เอาต์พุตของโอเปอเรเตอร์นี้จะให้ผลลัพธ์เป็น 1 ก็ต่อเมื่อทั้งสองบิตเป็น 1
Bitwise OR (|) ใน C: คอมไพเลอร์ C รู้จัก Bitwise OR ด้วย | โอเปอเรเตอร์ ใช้ตัวถูกดำเนินการสองตัวและดำเนินการ OR สำหรับทุกบิตของตัวเลขตัวถูกดำเนินการสองตัว มันยังเป็นตัวดำเนินการไบนารี เอาต์พุตของโอเปอเรเตอร์นี้จะได้ผลลัพธ์เป็น 1 หากหนึ่งในสองบิตเป็น 1

Bitwise XOR (^) ใน C: คอมไพเลอร์ C รู้จัก Bitwise XOR พร้อมตัวดำเนินการ ^ ใช้ตัวถูกดำเนินการสองตัวและดำเนินการ XOR สำหรับทุกบิตของตัวเลขตัวถูกดำเนินการสองตัว มันยังเป็นตัวดำเนินการไบนารี ผลลัพธ์ของโอเปอเรเตอร์นี้จะได้ผลลัพธ์เป็น 1 หากทั้งสองบิตมีค่าต่างกัน
ตัวดำเนินการเสริมของ Binary One หรือตัวดำเนินการ Bitwise NOT (~) ใน C: คอมไพเลอร์ C รู้จักตัวดำเนินการ Bitwise NOT ด้วยตัวดำเนินการ ~ ใช้ตัวถูกดำเนินการเพียงตัวเดียวและทำการผกผันของตัวเลขทั้งหมดของมัน เป็นโอเปอเรเตอร์เอกพจน์ เอาต์พุตของตัวดำเนินการนี้จะกลับบิตที่มีอยู่ทั้งหมดของตัวถูกดำเนินการนั้น
ตัวดำเนินการกะ Bitwise Left (<<) ใน C: คอมไพเลอร์ C รู้จักการ ดำเนินการกะด้านซ้าย ด้วย << ใช้ตัวถูกดำเนินการเพียงสองตัวและเลื่อนบิตทั้งหมดของตัวถูกดำเนินการแรกไปทางซ้าย ตัวถูกดำเนินการที่สองกำหนดจำนวนตำแหน่งที่ตัวดำเนินการนี้จะเปลี่ยนบิต มันเป็นตัวดำเนินการไบนารี
ตัวดำเนินการกะ Bitwise Right (>>) ใน C: คอมไพเลอร์ C รู้จักการดำเนินการกะด้านซ้ายด้วย >> ใช้ตัวถูกดำเนินการเพียงสองตัวและเลื่อนบิตทั้งหมดของตัวถูกดำเนินการแรกไปทางขวา ตัวถูกดำเนินการที่สองกำหนดจำนวนตำแหน่งที่ตัวดำเนินการนี้จะเปลี่ยนบิต มันเป็นตัวดำเนินการไบนารี
อ่าน: Operators in Python: A Beginner's Guide to Arithmetic, Relational, Logical & More
โปรแกรมสำหรับตัวดำเนินการ Bitwise ใน C
ให้เราดูที่โปรแกรมโดยใช้ตัวดำเนินการระดับบิตทั้งหมด
#include <stdio.h>
int หลัก ()
{
ถ่านที่ไม่ได้ลงชื่อ x = 20, y = 21; // x = 20 (00010100), y = 21 (00010101)
int ก. = 0;
ก. = x & y; /* 20 = 010100 */
printf(” ผลลัพธ์ของ Bitwise AND คือ %d \n”, g );
ก. = x | y; /* 21 = 010101 */
printf(” ผลลัพธ์ของ Bitwise OR คือ %d \n”, g );
ก. = x ^ y; /* 1 = 0001 */
printf(” ผลลัพธ์ของ Bitwise XOR คือ %d \n”, g );
ก. = ~x;
printf(” ผลลัพธ์ของ Bitwise NOT คือ %d \n”, g );
ก. = x << 1;
printf(” ผลลัพธ์ของ Bitwise Left Shift คือ %d \n”, g );
ก. = x >> 1;
printf(” ผลลัพธ์ของ Bitwise Right Shift คือ %d \n”, g );
กลับ 0;
}
เอาท์พุท:
ผลลัพธ์ของ Bitwise AND คือ 20
ผลลัพธ์ของ Bitwise OR คือ 21
ผลลัพธ์ของ Bitwise XOR คือ 1
ผลลัพธ์ของ Bitwise ไม่ใช่ -21

ผลลัพธ์ของ Bitwise Left Shift คือ40
ผลลัพธ์ของ Bitwise Right Shift คือ 10
อ่านเพิ่มเติม: บทช่วยสอน Python: การตั้งค่า, เครื่องมือ, คุณสมบัติ, แอปพลิเคชั่น, ประโยชน์, การเปรียบเทียบ
บทสรุป
ตัวดำเนินการระดับบิตคือตัวดำเนินการประเภทหนึ่งในภาษา C ที่ใช้สำหรับการเขียนโปรแกรมระดับบิต จำเป็นต้องรู้การใช้ตัวดำเนินการระดับบิต เนื่องจากเป็นวิธีที่มีประสิทธิภาพในการประหยัดพื้นที่ในการแสดงข้อมูล โปรแกรมเมอร์ใช้ตัวดำเนินการเหล่านี้ในด้านต่างๆ เช่น การเขียนโปรแกรมระบบ การเขียนโปรแกรมแบบฝัง และการออกแบบโปรโตคอล ดังนั้นโปรแกรมเมอร์จึงจำเป็นต้องรู้การใช้งาน
upGrad นำการเขียนโปรแกรมด้วย C และอีกมากมายด้วย ประกาศนียบัตร PG ของ upGrad ด้านความเชี่ยวชาญด้านการพัฒนาซอฟต์แวร์ในการพัฒนาแบบเต็ม กอง โปรแกรมที่จะทำให้คุณกลายเป็นนักพัฒนาเต็มรูปแบบและเรียนรู้การสร้างแอปพลิเคชันที่ยอดเยี่ยม เป็นโปรแกรม 12 เดือนที่ครอบคลุมการทำงานจริงในโครงการและงานที่ได้รับมอบหมาย และการฝึกอบรมภาษาโปรแกรมและเครื่องมือ 15 ภาษา นอกจากนี้ยังมีการสนับสนุนด้านอาชีพตลอดเวลาด้วยการสัมภาษณ์จำลองและความช่วยเหลือด้านงาน