รหัสเกรย์

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

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

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

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

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