Search for a tool
Gray Code

Tool to convert Gray code. Gray code, or reflected binary code, is a binary system which changes only one bit for each incrementation of one unity.

Results

Gray Code -

Tag(s) : Character Encoding, Electronics

Share
dCode and you

dCode is free and its tools are a valuable help in games, maths, geocaching, puzzles and problems to solve every day!
A suggestion ? a feedback ? a bug ? an idea ? Write to dCode!

Please, check our community Discord for help requests!

Thanks to your feedback and relevant comments, dCode has developped the best Gray Code tool, so feel free to write! Thank you !

# Gray Code

## Code Gray Encoder

Tool to convert Gray code. Gray code, or reflected binary code, is a binary system which changes only one bit for each incrementation of one unity.

### What is the gray code? (Definition)

The Gray code, also called reflected binary, is a binary code having the property of modifying only one bit when a number is increased (or decreased) by one unit.

Example:

NumberBinaryGray
000000000
100010001
200100011
300110010
401000110
501010111
601100101
701110100
810001100

This property can have several interesting practical applications, and the gray code appears in Baudot code, in Hanoi towers resolution, or position encoders.

### How to convert binary to Gray code?

To transform binary into reflected binary (Gray code), the algorithm consists in calculating the exclusive OR (XOR) between the binary value and itself but shifted by a row to the right (the last bit is deleted).

Example: \begin{align} 1 0 1 1 & \\ \oplus \rightarrow 1 0 1 & (1) \\ = 1 1 0 1 & \end{align} The binary code 1011 has for value 1101 in its reflected version in Gray code.

The algorithm implementation in computers languages is done in one line and uses binary operators xor and shift: function bin2gray(n) return n ^ (n >> 1)

### How to convert a decimal to Gray code?

An algorithm for converting an integer to Gray code (binary) uses successive divisions by powers of 2 and looks at the parity of the rounded quotient. (Thanks G. Plousos)

Example: \begin{align} 29 / 2 = 14.5 \approx 15 & \Rightarrow 1 \\ 29 / 4 = 7.25 \approx 7 & \Rightarrow 1 \\ 29 / 8 = 3.625 \approx 4 & \Rightarrow 0 \\ 29 / 16 = 1.8125 \approx 2 & \Rightarrow 0 \\ 29 / 32 = 0.90625 \approx 1 & \Rightarrow 1 \end{align} The decimal value 29 has the binary value 10011 in Gray code.

Another conversion method, more visual, is described by this image (Thanks G. Plousos) :

### How to convert Gray code to binary?

Gray code conversion can be done bit by bit. Given a number $G = {g_0,g_1,\dots,g_n}$ with $g_i$ each of its bits, then $B = {b_0,b_1,\dots,b_n}$ is calculated as: $$b_0 = g_0 \\ b_1 = g_0 \oplus g_1 \\ b_2 = g_0 \oplus g_1 \oplus g_2 \\ b_n = g_0 \oplus g_1 \oplus \dots \oplus g_n$$

In gray code, the most significant bit ($g_0$, often on the left) is always the same as the binary one ($b_0$).

The implementation of the conversion calculation also uses the xor and shift binary operators: function gray2bin(n1) { n2 = n1; while (n1 >>= 1) n2 ^= n1; return n2;}

### What are the first values in Gray Code?

Gray Code allow to count in binary but, to increment of one, only one bit changes. Here are the 16 first characters.

0000, 0001, 0011, 0010, 0110, 0111, 0101, 0100, 1100, 1101, 1111, 1110, 1010, 1011, 1001, 1000

The first equivalent decimal values are: 0, 1, 3, 2, 6, 7, 5, 4, 12, 13, 15, 14, 10, 11, 9, 8, 24, 25, 27, 26, 30, 31 , 29, 28, 20, 21, 23, 22, 18, 19, 17, 16, etc. here (link)

### What are the advantages of Gray Code?

Gray code is modified only one bit at once when incrementing, with simplifies calculations and speed them up in some cases.

### how to recognize Gray Code?

Gray code is modified only one bit at once when incrementing, with simplifies calculations and speed them up in some cases.

The color gray (also written grey) is a clue.

### When Gray Code have been invented?

The Gray code is protected by a patent from 1953

## Source code

dCode retains ownership of the online 'Gray Code' tool source code. Except explicit open source licence (indicated CC / Creative Commons / free), any algorithm, applet or snippet (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, translator), or any function (convert, solve, decrypt / encrypt, decipher / cipher, decode / encode, translate) written in any informatic language (PHP, Java, C#, Python, Javascript, Matlab, etc.) no data, script or API access will be for free, same for Gray Code download for offline use on PC, tablet, iPhone or Android !

## Need Help ?

Please, check our community Discord for help requests!