5.17. Декодирование кода Грея
Числа, поступающие с диска аналогового устройства, в типичных ситуациях представлены кодом Грея. Однако обычно для дальнейшей обработки их на ЭВМ нужно перейти к двоичному
представлению. При чтении слева направо видно, что все встречающие нули являются правильными, и это же верно для первой единицы. Однако символ, следующий за первой появившейся единицей, должен быть инвертирован.
Если следующий символ является 0, то инверсию, следует продолжить. Если символ 1, то его нужно инвертировать и прекратить инверсию до тех пор, пока снова не встретится 1. Таким образом, число встретившихся единиц определяет, нужно ли инвертировать следующий символ. Его нужно инвертировать, если ранее встретилось нечетное число единиц, и не нужно, если — четное. Это простое правило вместе с общей простотой метода делает данный код наиболее приемлемым в случае, когда при переходе между двумя последовательными числами должно происходить изменение только одного символа. Легко построить соответствующую диаграмму состояний.
Задача
5.17.1. Постройте диаграмму состояний для декодирования кода Грея.