รหัสเกรย์
จากวิกิพีเดีย สารานุกรมเสรี
รหัสเกรย์ เป็นรหัสคอมพิวเตอร์อีกชนิดหนึ่งโดยใช้เลขไบนารีขนาด 4 บิต แทนเลข 0 ถึง 9 เช่นกัน
โดยเริ่มที่ 0000 แต่เป็นรหัสที่ไม่มีค่าน้ำหนัก( Non weighted)
ซึ่งหมายถึง ตำแหน่งบิตในกลุ่มรหัสจะไม่มีตัวใดบ่งบอกถึงน้ำหนักเป็นพิเศษ
ดังนั้นจึงไม่เหมาะสมสำหรับใช้คำนวณ แต่จะมีประโยชน์ในระบบที่ต้องใช้อุปกรณ์ อินพุต/เอาต์พุต
ใช้กันมากในระบบตรวจจับสัญญานด้วยแสง การเปลี่ยนแปลงของรหัสเกรย์
แต่ละค่าจะต่างจากจำนวนก่อนหน้าอยู่ 1 บิต เสมอ ทำให้โอกาสที่จะเกิดความผิดพลาดได้ยากเมื่อเทียบกับรหัสเลขฐานสอง
ซึ่งอาจเกิดความคลาดเคลื่อนของรหัส (Erronous Code) หรือเกิดการคลุมเครือของรหัสระหว่างส่งรหัสได้
ตัวอย่างการเทียบเลข Binary กับ Gray Code
การแปลงเลขฐานสอง เป็น รหัสเกรย์ และ จากรหัสเกรย์ เป็นเลขฐานสอง
สิ่งแรกที่เราต้องทราบในการแปลงเลขฐานสอง เป็น รหัสเกรย์
และ จากรหัสเกรย์ เป็นเลขฐานสอง คือ กฎการบวก
โดยที่ 0+0 = 0, 0+1 = 1, 1+0 =1 และ 1+1 = 0
ขั้นตอนการแปลงเลขฐานสอง เป็น รหัสเกรย์
1.เริ่มจากบิตแรกซึ่งถือว่ามีนัยสำคัญมากที่สุด(MSB) ดีงมาไว้เป็นบิตแรกเช่นเดิม
2.นำบิตแรกไปบวกกับบิตตัวที่ 2
3.นำบิตตัวที่ 2 ไปบวกกับบิตตัวที่ 3
4.นำบิตตัวที่ 3 ไปบวกกับบิตตัวที่ 4 ไปเรื่อยๆจนหมด ผลบวกที่เราได้ ก็คือ Gray Code เช่น
Binary________1110011001
Gray Code____1001010101
ขั้นตอนการแปลงจากรหัสเกรย์ เป็นเลขฐานสอง
มีหลักคล้ายๆกับ การแปลงเลข Binary ให้เป็น Gray Code โดยเริ่มต้นจาก MSB เช่นเดียวกัน นั่นคือ
1.MSB ของเลข Binary จะมีค่าเหมือนกับ MSB ของ Gray code
2.นำ MSB ของเลข Binary บวกกับบิตที่ 2 (นับจาก MSB) ของ Gray code ผลบวกที่ได้คือ บิตที่ 2 ของเลข Binary
3.นำบิตที่ 2 ของเลข Binary บวกกับบิตที่ 3 ของ Gray Code ผลบวกที่ได้คือ บิตที่ 3 ของเลข Binary
4.บวกกันเช่นนี้ไปเรื่อยๆจนหมด เช่น
Gray Code____1110111010
Binary________1011010011