Functions for computing Gray encoding from/to binary strings.

binary2gray(x)
gray2binary(x)

Arguments

x

the string to be evaluated

Details

Gray encoding allows to obtain binary strings not affected by the well-known Hamming cliff problem. With Gray encoding the number of bit differences between any two consecutive values is one, whereas in binary strings this is not always true.

Author

Luca Scrucca

See also

Examples

# Consider a five-bit encoding of values 15 and 16  using the standard 
# binary coding
decimal2binary(15, 5)
#> [1] 0 1 1 1 1
decimal2binary(16, 5)
#> [1] 1 0 0 0 0
# Moving from 15 to 16 (or vice versa) all five bits need to be changed,
# but using Gray encoding the two binary strings differ by one bit.
binary2gray(decimal2binary(15, 5))
#> [1] 0 1 0 0 0
binary2gray(decimal2binary(16, 5))
#> [1] 1 1 0 0 0