รหัสเกรย์

รหัสเกรย์ () เป็นรหัสคอมพิวเตอร์อีกชนิดหนึ่งโดยใช้เลขไบนารีขนาด 4 บิต แทนเลข 0 ถึง 9 เช่นกัน โดยเริ่มที่ 0000  แต่เป็นรหัสที่ไม่มีค่าน้ำหนัก ( Non weighted) 
ซึ่งหมายถึง ตำแหน่งบิตในกลุ่มรหัสจะไม่มีตัวใดบ่งบอกถึงน้ำหนักเป็นพิเศษ ดังนั้นจึงไม่เหมาะสมสำหรับใช้คำนวณ แต่จะมีประโยชน์ในระบบที่ต้องใช้อุปกรณ์ อินพุต/เอาต์พุต ใช้กันมากในระบบตรวจจับสัญญานด้วยแสง การเปลี่ยนแปลงของรหัสเกรย์  แต่ละค่าจะต่างจากจำนวนก่อนหน้าอยู่ 1 บิต เสมอ ทำให้โอกาสที่จะเกิดความผิดพลาดได้ยากเมื่อเทียบกับรหัสเลขฐานสอง  ซึ่งอาจเกิดความคลาดเคลื่อนของรหัส (Erronous Code) หรือเกิดการคลุมเครือของรหัสระหว่างส่งรหัสได้ 

ตัวอย่างการเทียบเลข Binary  กับ  Gray Code

การแปลงเลขฐานสอง เป็น รหัสเกรย์ และ จากรหัสเกรย์ เป็นเลขฐานสอง 
สิ่งแรกที่เราต้องทราบในการแปลงเลขฐานสอง เป็น รหัสเกรย์ และ จากรหัสเกรย์ เป็นเลขฐานสอง คือ กฎการบวก โดยที่ 0+0 = 0, 0+1 = 1, 1+0 =1 และ 1+1 = 0

ขั้นตอนการแปลงเลขฐานสอง เป็น รหัสเกรย์ 
 เริ่มจากบิตแรกซึ่งถือว่ามีนัยสำคัญมากที่สุด (MSB) ดีงมาไว้เป็นบิตแรกเช่นเดิม 
 นำบิตแรกไปบวกกับบิตตัวที่ 2  
 นำบิตตัวที่ 2 ไปบวกกับบิตตัวที่ 3 
 นำบิตตัวที่ 3 ไปบวกกับบิตตัวที่ 4 ไปเรื่อยๆจนหมด ผลบวกที่เราได้ ก็คือ Gray Code เช่น  
 Binary1110011001 
 Gray Code 1001010101

ขั้นตอนการแปลงจากรหัสเกรย์ เป็นเลขฐานสอง 
มีหลักคล้ายๆกับ การแปลงเลข Binary ให้เป็น Gray Code โดยเริ่มต้นจาก MSB เช่นเดียวกัน นั่นคือ 
 MSB ของเลข Binary จะมีค่าเหมือนกับ MSB ของ Gray code  
 นำ MSB ของเลข Binary บวกกับบิตที่ 2 (นับจาก MSB) ของ Gray code ผลบวกที่ได้คือ บิตที่ 2 ของเลข Binary 
 นำบิตที่ 2 ของเลข Binary บวกกับบิตที่ 3 ของ Gray Code ผลบวกที่ได้คือ บิตที่ 3 ของเลข  Binary 
 บวกกันเช่นนี้ไปเรื่อยๆจนหมด เช่น  
 Gray Code_1110111010
 Binary1011010011

การส่งผ่านข้อมูล
ระบบเลข