В книге Эндрю Таненбаума "Архитектура компьютера" у меня возникли трудности в разделе - код исправления ошибок (ECC) в следующем отрывке:
В качестве простого примера кода с обнаружением ошибок рассмотрим код, в котором к данным присоединяется один бит четности. Бит четности выбирается таким образом, чтобы число битов со значением 1 в кодовом слове было четным (или нечетным). Интервал Хэмминга для этого кода равен 2, поскольку любая одноразрядная ошибка приводит к кодовому слову с неправильной четностью. Другими словами, достаточно двух одноразрядных ошибок для перехода от одного допустимого кодового слова к другому допустимому слову. Такой код может использоваться для обнаружения одиночных ошибок. Если из памяти считывается слово с неверной четностью, поступает сигнал об ошибке. Программа выполняться не сможет, но зато не выдаст неверных результатов. В качестве простого примера кода исправления ошибок рассмотрим код с четырьмя допустимыми кодовыми словами: 0000000000, 0000011111, 1111100000 и 1111111111. Интервал Хэмминга для этого кода равен 5. Это значит, что он может исправлять двойные ошибки. Если появляется кодовое слово 0000000111, компьютер знает, что изначально это слово выглядело как 0000011111 (если произошло не более двух ошибок). При появлении трех ошибок (например, слово 0000000000 меняется на 0000000111) этот метод не подходит.
Не понимаю почему интервал Хэмминга для этого кода (0000000000, 0000011111, 1111100000 и 1111111111) равен 5, относительно какого слова он равен 5, если относительно каждого слова из списка, то 0000000000 и 1111111111 различаются на 10 бит, следовательно их интервал Хэмминга равен 10. И что вообще подразумевается под словом код или это синоним к кодовому слову (единицу из n бит, содержащую m бит данных и r контрольных разрядов, часто называют кодовым словом.)
Разъясните, пожалуйста, эту тему.