ความแตกต่างที่สำคัญ – Bitwise เทียบกับตัวดำเนินการเชิงตรรกะ
ในการเขียนโปรแกรม มีสถานการณ์ที่ต้องทำการคำนวณทางคณิตศาสตร์ ตัวดำเนินการคือสัญลักษณ์ของภาษาการเขียนโปรแกรมเพื่อดำเนินการฟังก์ชันทางลอจิคัลหรือคณิตศาสตร์ที่เฉพาะเจาะจงกับค่าหรือตัวแปร มีตัวดำเนินการต่างๆ ในภาษาโปรแกรม บางส่วนเป็นตัวดำเนินการเลขคณิต ตัวดำเนินการเชิงสัมพันธ์ ตัวดำเนินการตรรกะ ตัวดำเนินการระดับบิต และตัวดำเนินการกำหนด ตัวดำเนินการเลขคณิตสนับสนุนการดำเนินการทางคณิตศาสตร์ เช่น การบวก (+) การลบ (-) การหาร (/) การคูณ () โมดูลัส (%) การเพิ่มขึ้น (++) และการลดลง (–) ตัวดำเนินการความสัมพันธ์คือ >, >=, <, <=,==หรือ !=ตัวดำเนินการเหล่านี้ช่วยในการค้นหาความสัมพันธ์ของตัวถูกดำเนินการ ตัวดำเนินการมอบหมายกำหนดค่าจากตัวถูกดำเนินการด้านขวาไปยังตัวถูกดำเนินการด้านซ้าย ตัวดำเนินการระดับบิตคือ &, |, ^ ตัวดำเนินการเชิงตรรกะคือ &&, ||, !. บทความนี้กล่าวถึงความแตกต่างระหว่างตัวดำเนินการระดับบิตและเชิงตรรกะ ความแตกต่างที่สำคัญระหว่างตัวดำเนินการ Bitwise และตัวดำเนินการแบบลอจิกคือตัวดำเนินการ Bitwise ทำงานแบบบิตและดำเนินการทีละบิต ในขณะที่ตัวดำเนินการแบบลอจิคัลจะใช้ในการตัดสินใจตามเงื่อนไขต่างๆ
ตัวดำเนินการ Bitwise คืออะไร
ตัวดำเนินการระดับบิตทำงานแบบบิตและดำเนินการแบบทีละบิต ในการคำนวณ เช่น การบวก การลบ การคูณ การหาร เป็นต้น ค่าจะถูกแปลงเป็นไบนารี การดำเนินการเหล่านั้นดำเนินการในระดับบิต การประมวลผลระดับบิตใช้เพื่อเพิ่มความเร็วและประหยัดพลังงาน ตัวอย่างของตัวดำเนินการ Bitwise มีดังนี้ & หมายถึงระดับบิต AND The | แสดงถึงระดับบิต OR ^ หมายถึง OR ที่เป็นเอกสิทธิ์ระดับบิต~ เป็นส่วนเติมเต็ม สัญลักษณ์แสดงถึงกะขวา<>
Bitwise AND การดำเนินการมีดังนี้ เมื่อ x และ y เป็นตัวถูกดำเนินการ และ x มีค่า 0 และ y มีค่า 0 ค่าระดับบิต AND จะเป็น 0 เมื่อ x เป็น 0 และ y เป็น 1 ดังนั้นค่าระดับบิต AND จะเป็น 0 หาก x เป็น 1 และ y เป็น 0 จากนั้นค่าบิต AND คือ 0 เมื่อทั้ง x และ y มี 1 ค่าระดับบิต AND คือ 1 เอาต์พุตจะเป็น 1 ต่อเมื่อตัวถูกดำเนินการทั้งสองมีค่า 1 สมมติ 20 และ 25 เป็นสองค่า เลขฐานสองของ 20 คือ 10100 เลขฐานสองของ 25 คือ 11001 Bitwise AND ของตัวเลขสองตัวนี้คือ 10000 เมื่อดำเนินการแบบทีละบิต AND ค่าหนึ่งจะมาเมื่อตัวถูกดำเนินการทั้งสองมีหนึ่งตัวเท่านั้น
Bitwise OR ดำเนินการดังนี้ เมื่อ x และ y เป็นตัวถูกดำเนินการ และ x มีค่า 0 และ y มีค่า 0 ค่าระดับบิต OR จะเป็น 0 เมื่อ x เป็น 0 และ y เป็น 1 ดังนั้นผลลัพธ์จะเป็น 1 เมื่อ x เป็น 1 และ y เป็น 0 ผลลัพธ์ คือ 1 เมื่อทั้ง x และ y มีค่า 1 ผลลัพธ์จะเป็น 1 จากตัวถูกดำเนินการสองตัว ถ้าตัวถูกดำเนินการตัวใดตัวหนึ่งเป็น 1 ดังนั้น Bitwise OR คือ 1สมมติว่า 20 และ 25 เป็นสองค่า เลขฐานสองของ 20 คือ 10100 เลขฐานสองของ 25 คือ 11001 Bitwise OR ของ 20 และ 25 คือ 11101
ตัวดำเนินการ Bitwise XOR จะให้ 1 หากค่าทั้งสองต่างกัน เมื่อตัวถูกดำเนินการ x และ y เป็นศูนย์ ดังนั้น Bitwise XOR จะเป็น 0 เมื่อ x เป็น 0 และ y เป็น 1 ผลลัพธ์จะเป็น 1 เมื่อ x เป็น 1 และ y เป็น 0 ผลลัพธ์จะเป็น 1 เมื่อทั้ง x และ y เป็น 1 จากนั้นผลลัพธ์จะเป็น 0 Bitwise XOR ของ 20 และ 25 คือ 01101 สัญลักษณ์ ~ คือการนำค่าเสริมมาเสริม ค่าไบนารีของ 20 คือ 10100 ส่วนเสริมคือ ~20=01011 มันคือการแปลงหนึ่งเป็นศูนย์และแปลงศูนย์เป็นหนึ่ง
<< เป็นตัวดำเนินการกะซ้ายไบนารี ค่าตัวถูกดำเนินการทางซ้ายจะถูกย้ายไปทางซ้ายตามจำนวนบิตที่ระบุโดยตัวถูกดำเนินการทางขวา ในตัวอย่าง 5 << 1 ค่าไบนารีของ 5 คือ 0101 0101 เป็นตัวดำเนินการกะไบนารีด้านขวา ค่าตัวถูกดำเนินการทางซ้ายจะถูกย้ายไปทางขวาตามจำนวนบิตที่ระบุโดยตัวถูกดำเนินการทางขวา ตัวอย่างเช่น 5 >>1, 0101 >> 1 คือ 0010<>
ตัวดำเนินการลอจิกคืออะไร
ตัวดำเนินการเชิงตรรกะใช้เพื่อตัดสินใจตามเงื่อนไขต่างๆ สัญลักษณ์ && แสดงถึงตรรกะ AND || สัญลักษณ์แสดงถึงตรรกะ OR ที่ ! สัญลักษณ์แสดงถึงตรรกะไม่ ตามตรรกะ AND ถ้าตัวถูกดำเนินการทั้งคู่ไม่ใช่ศูนย์ เงื่อนไขจะกลายเป็นจริง ในตรรกะ OR ถ้าตัวถูกดำเนินการทั้งสองไม่ใช่ศูนย์ เงื่อนไขจะกลายเป็นจริง ที่ ! ตัวดำเนินการสามารถย้อนกลับสถานะตรรกะของตัวถูกดำเนินการ หากเงื่อนไขเป็นจริง ตัวดำเนินการ Logical NOT จะทำให้เป็นเท็จ ค่าจริงแทนค่า 1 และค่าเท็จแทนค่า 0
รูปที่ 01: Bitwise และตัวดำเนินการเชิงตรรกะ
เมื่อตัวแปร x ถือค่า 1 และตัวแปร y ถือค่า 0 ตรรกะ AND นั่นคือ (x && y) เป็นเท็จหรือ 0ตรรกะ OR ที่ (x || y) จะให้ค่าจริงหรือ 1 ตัวดำเนินการ NOT จะกลับสถานะทางตรรกะ เมื่อ x มีค่า 1 แล้ว ! x เป็น 0 เมื่อ y มีค่า 0 แล้ว !y คือ 1.
ความคล้ายคลึงกันระหว่าง Bitwise และตัวดำเนินการเชิงตรรกะคืออะไร
ทั้งสองเป็นตัวดำเนินการในการเขียนโปรแกรมเพื่อดำเนินการฟังก์ชันตรรกะหรือคณิตศาสตร์เฉพาะกับค่าหรือตัวแปร
ความแตกต่างระหว่างตัวดำเนินการระดับบิตและตัวดำเนินการเชิงตรรกะคืออะไร
Bitwise vs Logical Operator |
|
ตัวดำเนินการระดับบิตคือประเภทของตัวดำเนินการที่จัดเตรียมโดยภาษาโปรแกรมเพื่อดำเนินการคำนวณ | ตัวดำเนินการตรรกะคือประเภทของตัวดำเนินการที่จัดเตรียมโดยภาษาโปรแกรมเพื่อดำเนินการตามตรรกะ |
ฟังก์ชั่น | |
ตัวดำเนินการระดับบิตทำงานแบบบิตและดำเนินการทีละบิต | โอเปอเรเตอร์ตรรกะใช้สำหรับตัดสินใจตามเงื่อนไขต่างๆ |
ธีม | |
ตัวดำเนินการระดับบิตคือ &, |, ^, ~,.<> | ตัวดำเนินการตรรกะคือ &&, ||, ! |
สรุป – Bitwise เทียบกับตัวดำเนินการเชิงตรรกะ
ในการเขียนโปรแกรม จำเป็นต้องดำเนินการทางคณิตศาสตร์และตรรกะ สามารถทำได้โดยใช้ตัวดำเนินการ มีตัวดำเนินการหลายประเภท บทความนี้กล่าวถึงความแตกต่างระหว่างตัวดำเนินการสองตัว เช่น ตัวดำเนินการระดับบิตและตัวดำเนินการทางตรรกะ ความแตกต่างระหว่างตัวดำเนินการ Bitwise และตัวดำเนินการแบบลอจิกคือตัวดำเนินการ Bitwise ทำงานแบบบิตและดำเนินการแบบทีละบิต ในขณะที่ตัวดำเนินการแบบลอจิคัลจะใช้ในการตัดสินใจตามเงื่อนไขต่างๆ
ดาวน์โหลดไฟล์ PDF ของ Bitwise vs Logical Operator
คุณสามารถดาวน์โหลดไฟล์ PDF ของบทความนี้และใช้เพื่อวัตถุประสงค์ออฟไลน์ตามหมายเหตุอ้างอิง โปรดดาวน์โหลดไฟล์ PDF ที่นี่: ความแตกต่างระหว่างตัวดำเนินการ Bitwise และตัวดำเนินการเชิงตรรกะ