XOR
(chiark.greenend.org.uk)บทนำ
- เมื่อไม่นานมานี้มีโอกาสได้อธิบายตัวดำเนินการ XOR เดิมทีการเรียนรู้ XOR เป็นสิ่งจำเป็นสำหรับการจัดการบิตระดับล่างในคอมพิวเตอร์ แต่ปัจจุบันสำหรับโปรแกรมเมอร์ระดับสูงถือเป็นทางเลือก
- ระหว่างเตรียมบรรยายเกี่ยวกับ XOR ได้整理ความคิดหลากหลายอย่างไว้ และตัดสินใจบันทึกเป็นเอกสาร
ตรรกะแบบบูลีนของ XOR
XOR คืออะไร?
- XOR เป็นตัวดำเนินการเชิงตรรกะที่รับบิตสองบิตเป็นอินพุตและให้บิตหนึ่งบิตเป็นเอาต์พุต
- สามารถอธิบายการทำงานของ XOR ได้ผ่านตารางค่าความจริง
"OR แบบไม่รวมกัน"
- XOR หมายถึง "OR แบบไม่รวมกัน" และจะคืนค่าเป็นจริงเมื่อมีอินพุตเพียงหนึ่งตัวเท่านั้นที่เป็นจริง
ตัวดำเนินการ 'ไม่เท่ากัน'
- XOR คืนค่า 1 เมื่ออินพุตทั้งสองต่างกัน ดังนั้นจึงทำงานเหมือนกับ a ≠ b
การกลับค่าตามเงื่อนไข
- XOR สามารถมองได้ว่าเป็นการดำเนินการกลับค่าตามเงื่อนไข โดยอินพุตหนึ่งตัวจะเป็นตัวกำหนดว่าจะกลับค่าอีกอินพุตหนึ่งหรือไม่
พาริตี หรือเศษเมื่อหารด้วย 2
- XOR จะคืนค่า 1 เมื่อมีจำนวนบิตที่เป็นจริงในอินพุตเป็นจำนวนคี่
ผลต่างเมื่อหารด้วย 2
- XOR ทำงานเหมือนกับเศษของการบวกและการลบเมื่อหารด้วย 2
คุณสมบัติของ XOR
- XOR เป็นไปตามกฎการสลับที่และกฎการเปลี่ยนหมู่ โดย 0 ทำหน้าที่เป็นเอกลักษณ์ และอินพุตทุกตัวเป็นอินเวอร์สของตัวเอง
XOR ระดับบิตสำหรับจำนวนเต็ม
- สามารถแทนจำนวนเต็มในรูปเลขฐานสองแล้วทำการดำเนินการ XOR แบบระดับบิตได้
- XOR แบบระดับบิตมีคุณสมบัติเช่นเดียวกับ XOR แบบบูลีน
การประยุกต์ใช้ XOR
การเข้ารหัส: การรวมข้อความปกติกับคีย์สตรีม
- XOR ถูกใช้ในการเข้ารหัสเพื่อรวมข้อความปกติเข้ากับคีย์สตรีม
- XOR เรียบง่ายกว่าการบวกในฮาร์ดแวร์ จึงมีประสิทธิภาพ
กราฟิกพิกเซล: วาดภาพที่ลบได้ง่าย
- ในคอมพิวเตอร์กราฟิกยุคทศวรรษ 1980 มีการใช้ XOR เพื่อวาดภาพที่ลบออกได้ง่าย
- เมื่อใช้ XOR สามารถวาดพิกเซลซ้ำอีกครั้งเพื่อกู้คืนสภาพเดิมได้
"อัตลักษณ์ของฮาล์ฟแอดเดอร์"
- XOR แทนบิตต่ำของการบวก ส่วน AND แทนบิตสูง
- สำหรับจำนวนเต็ม สามารถใช้ XOR และ AND เพื่อทำการบวกได้
เอกสารนี้อธิบายคุณสมบัติและการประยุกต์ใช้ XOR ในหลากหลายด้าน และช่วยให้เข้าใจว่า XOR ทำงานอย่างไรและมีประโยชน์ในจุดใดบ้าง
ยังไม่มีความคิดเห็น