answersLogoWhite

0


Best Answer

Gillham code is Gray code implemented as a binary-quinary combination. When a Gillham value is converted as Gray to binary in the ordinary way, the least significant 3 bits will have values of 1 through 4 and 7 ( a reflecting pattern of 5 values only).

This was done to produce a quasi decimal system. (5 X 2 =10) that would be compatible with mechanical altimeter mechanisms where one dial rotation is 1k or 10k feet.

Here is a conversion algorithm that looks quite good. I lifted it from a website, http://www.ccsinfo.com/forum/viewtopic.php?p=77544 :

signed int32 GillhamToAltitude( int16 GillhamValue )

// Data must be in following order (MSB to LSB)

// D1 D2 D4 A1 A2 A4 B1 B2 B4 C1 C2 C4

{

signed int32 Result;

int16 FiveHundreds;

int16 OneHundreds;

// Convert Gillham value using gray code to binary conversion algorithm.

// Get rid of Hundreds (lower 3 bits).

FiveHundreds = GillhamValue >> 3;

// Strip off Five Hundreds leaving lower 3 bits.

OneHundreds = GillhamValue & 0x07;

FiveHundreds = GrayToBinary(FiveHundreds);

OneHundreds = GrayToBinary(OneHundreds);

// Check for invalid codes.

if (OneHundreds 7) OneHundreds = 5;

// Correct order of OneHundreds.

if (FiveHundreds % 2) OneHundreds = 6 - OneHundreds;

// Convert to feet and apply altitude datum offset.

Result = (signed int32)((FiveHundreds * 500) + (OneHundreds *100)) - 1300;

return Result;

}

unsigned int GrayToBinary(unsigned int num)

{

unsigned int temp;

temp = num ^ (num>>8);

temp ^= (temp>>4);

temp ^= (temp>>2);

temp ^= (temp>>1);

return temp;

User Avatar

Wiki User

11y ago
This answer is:
User Avatar
More answers
User Avatar

Wiki User

9y ago

To convert from standard binary to Gray code you need to be familiar with the logical XOR operator (eXclusive OR). The XOR operator outputs a 1 bit if either of two input bits is 1, but not both. The truth table for all possible inputs p and q is as follows:

p q output

0 0 0

0 1 1

1 0 1

1 1 0

Armed with this knowledge, we can convert from standard binary code to Gray code using the following algorithm:

Step 1: Fix the most-significant bit, MSB, which is always the same for both. If there is only one bit, then we're done. Otherwise proceed to step 2.

Step 2: XOR the first two bits of the binary code to get the next Gray bit.

Step 3: Discard the first bit of the binary code.

Step 4: If there are two or more bits left in the binary code, goto step 2, otherwise we're done.

Example: Binary = 11001010

(Fix MSB) = 11001010

(1 XOR 1 = 0) 001010

(1 XOR 0 = 1) 01010

(0 XOR 0 = 0) 1010

(0 XOR 1 = 1) 010

(1 XOR 0 = 1) 10

(0 XOR 1 = 1) 0

(1 XOR 0 = 1)

Thus: Gray = 10101111

Note that we XOR pairs of bits in the binary code from left to right until there are no pairs left. The bold bits are the fixed Gray bits reading from top to bottom.

To reverse the process, we need another algorithm, but we still use XOR:

Step 1: Fix the most-significant bit, MSB, which is always the same for both. If there is only one bit, then we're done. Otherwise proceed to step 2.

Step 2: XOR the binary bit we just set with the next Gray bit to fix the next binary bit.

Step 3: If there are more Gray bits, repeat step 2, otherwise we're done.

Example: Gray = 10101111

(Fix MSB) = 10101111

1 XOR 0 = 1

1 XOR 1 = 0

0 XOR 0 = 0

0 XOR 1 = 1

1 XOR 1 = 0

0 XOR 1 = 1

1 XOR 1 = 0

Thus: Binary= 11001010

Note that we carry the fixed bit (in bold) from the previous line into the next line and XOR with the next Gray bit to get the next fixed bit. The bold bits are the fixed binary bits read from top to bottom. We could also write this out as follows, reading left to right:

Gray = 10101111

Binary = 1 XOR 0 = 1 XOR 1 = 0 XOR 0 = 0 XOR 1 = 1 XOR 1 = 0 XOR 1 = 1 XOR 1 = 0

Previous Answer:

[Edit: The previous answer uses arithmetic ADD rather than logical XOR. Apart from anything else, it makes no logical sense for 1 ADD 1 = 0 (it is actually 10 binary, or decimal 2). But so long as you only consider the LSB (least-significant bit) the result will be the same. However 1 XOR 1 is always 0 and is therefore more efficient.]

How do you convert binary to Gray code?

Very Simple Example: Convert natural binary 11001010 to gray code.

Step 1) Copy most significant bit (on very left)

Answer: 1

Step 2) Add from left to right bit by bit of your binary number:

(1+1) 001010 [1+1 = 0]

Answer: 10

Step 3) Continue:

1(1+0)01010

Answer: 101

-------------------------

11(0+0)1010

Answer: 1010

------------------------

110(0+1)010

Answer: 10101

-------------------------

until you get to the end

110010(1+0)

Answer: 10101111 <- Answer in Gray Code

This answer is:
User Avatar

User Avatar

Wiki User

11y ago

To convert from Gray code to binary code, proceed as follows:

Step 1: Fix the most-significant bit (always the same for both).

Step 2: XOR the most recent binary bit with the next bit in the Gray. Fix the result as the next binary bit.

Step 3. Repeat step 2 until all digits are fixed.

Examples (bold indicates a fixed binary bit):

Gray: 0111 = 0 XOR 1 = 1 XOR 1 = 0 XOR 1 = 1

Binary: 0101 (5 decimal)

Gray: 1011 = 1 XOR 0 = 1 XOR 1 = 0 XOR 1 = 1

Binary: 1101 (13 decimal)

Gray: 1101 = 1 XOR 1 = 0 XOR 0 = 0 XOR 1 = 1

Binary: 1001 (9 decimal)

To convert from binary code to Gray code, proceed as follows:

Step 1: Fix the most-significant bit (always the same for both):

Step 2: XOR the first two binary bits. Fix the result as the next Gray bit.

Step 3. Discard the first binary bit. If there are two or more binary bits remaining, goto step 2.

Examples (bold indicates a fixed Gray bit):

Binary: 0101 = 0, (0 XOR 1) = 1, (1 XOR 0) = 1, (0 XOR 1) = 1

Gray: 0111 (decimal 5)

Binary: 1101 = 1, (1 XOR 1) = 0, (1 XOR 0) = 1, (0 XOR 1) = 1

Gray: 1011 (decimal 13)

Binary: 1001 = 1, (1 XOR 0) = 1, (0 XOR 0) = 0, (0 XOR 1) = 1

Gray: 1101 (decimal 9)

[EDIT: The previous answer was wrong as it incorrectly assumed converting both ways was achieved with the same algorithm. It is not. Moreover, the algorithm that was used (Binary to Gray) used an arithmetic ADD instead of a logical XOR. Although the end result is essentially the same, ADDing two set bits forces a redundant carry bit, whereas XOR does not. Thus XOR is more efficient.]

This answer is:
User Avatar

User Avatar

Wiki User

11y ago
To convert a gray code to binary

1.write the the MSB bit as the MSB of the binary.

2.if the 2nd grey bit is 0,then the 2nd binary bit is the same as the first binary bit.... and if the grey bit is 1 the 2nd binary bit is the complement of the first binary bit

3.step 2 is repeated for every bit....

EXAMPLE:the binary of the grey code 1110011 is 1011101

This answer is:
User Avatar

User Avatar

Wiki User

12y ago

Its often done in hardware with a lookup ROM, or in software with a lookup table.

This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: How do you convert binary to gray code?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Related questions

How do you convert n-bits binary to gray code?

The best way is with a lookup table.


Does special gray code property have any value?

The Gray Code is a type of binary code developed by a programmer named Frank Gray. Gray code is a binary numeral system that differ than normal binary code, and is used widely to detect errors in software.


How do you convert binary code to text code and text to binary?

You can are ASCII-tabellen. For converting binary to text


What is binary cyclic code?

The reflected binary code, also known as Gray codeafter Frank Gray, is a binary numeral system where two successive values differ in only one bit.Here is an example of a 4-bit Gray code:0000000100110010011001110101010011001101111111101010101110011000


How do you convert graycode to binary?

Converting Gray Code to Binary1). Write down the number in gray code.2). The most significant bit of the binary number is the most significant bitof the gray code.3). Add (using modulo 2) the next significant bit of the binary number to thenext significant bit of the gray coded number to obtain the next binary bit.4). Repeat step 3 till all bits of the gray coded number have been added inmodulo 2. The resultant number is the binary equivalent of the gray number.Converting Binary to Gray Code1). Write down the number in binary code.2). The most significant bit of the gray number is the most significant bitof the binary code.3). Add (using modulo 2) the next significant bit of the binary number to thenext significant bit of the binary number to obtain the next gray coded bit.4). Repeat step 3 till all bits of the binary coded number have been added inmodulo 2. The resultant number is the gray coded equivalent of the binarynumber.


Applications of binary to GRAY code converter?

gray code is one which changes one bit at a time but binary code is one which changes one or more bit at a time. for example three bit binary and gray code the left one is binary and the right one is gray code.binary gray000 000001 001010 011011 010100 110101 111110 101111 100000 000


How do you convert excess-3 to gray code?

help PLA use convert excess-3 to gray code


What are the disadvantages of Gray code?

Gray Code is Reflective Binary code. One of the main disadvantages of Gray code is that it is very difficult to come up with an arithmetic logic unit to support Gray code.


How do you convert binary to 2421 code?

5


What is the most important characteristic of Gray code Prepare a table showing the 4 bit Gray code Explain the rule for conversion of Binary number to Gray code?

characteristic of Gray code


Application of gray to binary convertion?

gray code is one which changes one bit at a time but binary code is one which changes one or more bit at a time. for example three bit binary and gray code the left one is binary and the right one is gray code.binary gray000 000001 001010 011011 010100 110101 111110 101111 100000 000


How can you write a program to convert binary code to gray code using 8085 microprocessor?

It can be implemented very easily .... Suppose the Binary word is X7X6X5.... X0 then the corresponding Gray code is G7G6G5....G0 where G7=X7 G6=X7 XOR X6 G5=X6 XOR X5 ..... G0=X1 XOR X0 Now implement the above algorithm