ภาวะคู่หรือคี่
จากวิกิพีเดีย สารานุกรมเสรี
[แก้] Parity bit
ในการส่งข่าวสารทางสัญญาณ Digital นั้น เราสามารถตรวจสอบความถูกต้องในการสื่อสารหรือการรับส่งข้อมูลที่ส่งออกซึ่งอาจมีสาเหตุต่าง ๆ ทำให้คอมพิวเตอร์ส่งข้อมูลผิดจาก 0 เป็น 1 ก็ได้ หากต้องการตรวจสอบว่าคอมพิวเตอร์ส่งข้อมูลผิดพลาดหรือไม่ เช่น การส่งข้อมูลผ่าน Modem มีการย้ายข้อมูลจากที่เก็บไปที่อื่น โดยวธีที่นิยมใช้ก็คือ Parity bit
การเช็ค Parity bit คือ การเพิ่มบิตเข้าไปเข้าไป 1 บิตให้กับทุกๆ 8 บิตของข้อมูลจนกลายเป็น 9 บิต บิตที่เพิ่มขึ้นไม่ใช่ข้อมูล แต่ใส่เพื่อตรวจสอบว่า ข้อมูลมีความผิดพลาดหรือไม่ โดยใช้หลักการนับจำนวนบิตข้อมูลที่มีค่าเป็น 1 ในทุกๆ 8 บิต การเช็ค Parity นี้แบ่งได้ 2 วิธี คือ Odd Parity (Parity คี่) และ Even Parity (Parity คู่)
- Odd Parity หมายถึง จำนวนบิตที่เป็น 1 เป็นเลขคี่ การคำนวณก็นับจำนวนบิตที่เป็น 1 ในข้อมูลจริง 8 บิตแรกว่ามีจำนวนเป็นเลขคี่และเลขคู่ ถ้าได้เลขคี่ให้เติม parity เป็น 0 ถ้านับได้เลขคู่ ก็เติม parity bit เป็น 1 เพื่อให้จำนวนเป็นเลขคี่ เช่น 101101 มีจำนวนบิท 1 เป็น 4 ตัว ซึ่งเป็นจำนวนคู่ดังนั้น parity bit จะต้องเป็น 1 เพื่อให้จำนวนเป็นคี่ 1 1 0 1 1 0 1
- Even Parity หมายถึง จำนวนบิตที่เป็น 1 เป็นเลขคู่ การคำนวณก็เพียงแต่นับจำนวนบิตที่เป็น 1ในข้อมูลจริง 8 บิตแรกว่ามีจำนวนเป็นเลขคี่และเลขคู่ ถ้าได้เลขคู่ให้เติม parity bit เป็น 0 ถ้านับได้เลขคี่ ก็เติม parity bit เป็น 1 เพื่อให้จำนวนเป็นเลขคู่ เช่น 101101 มีจำนวนบิท 1เป็น 4 ตัว ซึ่งเป็นจำนวนคู่อยู่แล้ว จึงเติม 0
จะได้ 0 1 0 1 1 0 1
- ตัวอย่างการเติม Odd Parity และ Even Parity
-
-
-
Codes Odd Parity Even Parity 10011 0 1 101101 1 0 11001101 0 1 100111011 1 0 1010111010 1 0
-
-
การส่งข้อมูลข้ามกันระหว่างเครื่องคอมพิวเตอร์ โดยที่เครื่องทำหน้าที่เป็นตัวรับข้อมูลจะต้องทราบล่วงหน้าว่าเครื่องที่ส่งข้อมูลมาใช้ Parity แบบไหน แบบ Odd Parity หรือ Even Parity ถ้าไม่ทราบก็จะทำให้แปลความหมายของข้อมูลที่รับเข้ามาไม่ถูกต้อง
- ข้อเสียของ Parity bit
การใช้ Parity bit คือ เสียเวลา และไม่ได้ประโยชน์เท่าไรนัก เพราะไม่สามารถบอกได้ว่าผิดที่ตำแหน่งตรงไหน และแก้ไขข้อผิดพลาดไม่ได้ บอกได้แค่เพียงว่ามีความผิดพลาดเกิดขึ้นเท่านั้น และ ถ้าสมมติข้อมูลเกิดผิดพลาดทีเดียว 2 บิต เช่น 10001001 เปลี่ยนเป็น 10101011 เราก็ไม่สามารถเช็คข้อผิดพลาดโดยใช้วิธี Parity ได้