sunmoon sunmoon - 6 months ago 50
C Question

Gray code to binary conversion

Given a gray code for a number, find the binary code for the number.

Gray code is a binary numeral system where two successive values differ in only one bit.

For Example two bit gray code is:
0 - 00
1 - 01
2 - 11
3 - 10

Binary is:

0 - 00
1 - 01
2 - 10
3 - 11

Provide an algorithm to convert the gray code of the number to binary code.

For example, input is 11. Expected output is 10.


Converting the Gray code to binary is:

Retain the Most significant bit as it is and for the rest of the bits keep xoring the successive bits.

ie Gn Gn-1 Gn-2 ........ G1 is the gray code and Bn Bn-1 .......B1 is the binary code.

Bn= Gn and for all the other bits Bn-1 = Gn-1 XOR Gn