Рассмотренные выше коды называются позиционными так как вес каждого разряда определяется его положением (позицией) в рассматриваемом коде. Так в двоичном позиционном коде 1 в крайнем правом разряде представляет число 20 ,в следующем разряде-21 и т.д. Поэтому двоичный позиционный код еще называют кодом 8421. В цифровых датчиках применение этого кода может привести к большим ошибкам. В цифровых датчиках перемещения или угла поворота единица изображается отверстием в маске, через которое проходит световой луч, а ноль изображается непрозрачным участком маски.
Таблица 9 – Сравнение двоичного кода и кода Грея
Если пользоваться двоичным, то при перемещении маски, например, из положения 0111 в положение 1000 из-за неодновременной смены трех “1” на три “0” могут кратковременно возникнуть коды 1100, 1010, 1101 и т.д., которые значительно отличаются как от предыдущего, так и от последующего значения и погрешность становится непредсказуемой. Все проблемы снимаются при использовании кода Грея, в котором при увеличении кода на 1 каждый раз изменяется только один из разрядов. Код Грея используется только для снятия информации с датчика. Для дальнейшей обработки информации код Грея переводится в двоичный позиционный по следующему алгоритму:
Каждый i-й, считая с левого старшего, разряд двоичного позиционного кода любого числа равен сумме по модулю 2 i-го и всех более левых разрядов этого числа, представленного кодом Грея.