Бит чётности

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

В вычислительной технике и сетях передачи данных би́том чётности (англ. Parity bit) называют контрольный бит, служащий для проверки общей чётности двоичного числа (чётности количества единичных битов в числе).

Применение[править | править исходный текст]

В последовательной передаче данных часто используется формат 7 бит данных, бит чётности, один или два стоповых бита. Такой формат аккуратно размещает все 7-битные ASCII символы в удобный 8-битный байт. Также допустимы другие форматы: 8 бит данных и бит чётности.

В последовательных коммуникациях чётность обычно контролируется оборудованием интерфейса (например UART). Признак ошибки становится доступен процессору (и ОС) через статусный регистр оборудования. Восстановление ошибок обычно производится повторной передачей данных, подробности которого обрабатываются программным обеспечением (например, функциями ввода-вывода операционной системы)

Контроль некой двоичной последовательности (например, машинного слова) с помощью бита чётности также называют контролем по паритету. Контроль по паритету представляет собой наиболее простой и наименее мощный метод контроля данных. С его помощью можно обнаружить только одиночные ошибки в проверяемых данных. Двойная ошибка будет неверно принята за корректные данные. Поэтому контроль по паритету применяется к небольшим порциям данных, как правило к каждому байту, что даёт коэффициент избыточности для этого метода 1/8. Метод редко применяется в компьютерных сетях из-за невысоких диагностических способностей. Существует модификация этого метода — вертикальный и горизонтальный контроль по паритету. Отличие состоит в том, что исходные данные рассматриваются в виде матрицы, строки которой составляют байты данных. Контрольный разряд подсчитывается отдельно для каждой строки и для каждого столбца матрицы. Этот метод обнаруживает значительную часть двойных ошибок, однако обладает большей избыточностью. Он сейчас также почти не применяется при передаче информации по сети.

Полиномы CRC и бит чётности[править | править исходный текст]

Контроль по чётности фактически является специальным случаем проверки избыточности циклической суммы с полиномом x+1.

Примеры[править | править исходный текст]

Бит чётности или контрольный разряд формируется при выполнении операции «Исключающее-ИЛИ» поразрядно. Рассмотрим схему, использующую девятибитные кодовые слова, состоящие из восьми бит данных, за которыми следует бит чётности.

  • Число 10111101 содержит 6 '1' битов. Бит чётности будет 1, получаем кодовое слово 101111011.
  • Число 01110011 содержит 5 '1' битов. Бит чётности будет 0, получаем кодовое слово 011100110.
  • Число 00000000 содержит 0 '1' битов. Бит чётности будет 1, получаем кодовое слово 000000001.
  • Число 11111111 содержит 8 '1' битов. Бит чётности будет 1, получаем кодовое слово 111111111.

Пустой или несуществующий поток битов также имеет ноль единичных битов, поэтому бит чётности будет 1.

См. также[править | править исходный текст]

  • Чётность используется для восстановления данных в RAID.
  • Parity RAM использует чётность для обнаружения ошибок памяти.
  • Код Хемминга — следующий шаг после бита чётности.

Литература[править | править исходный текст]

  • Генри С. Уоррен, мл. Глава 5. Подсчет битов // Алгоритмические трюки для программистов = Hacker's Delight. — М.: «Вильямс», 2007. — С. 288. — ISBN 0-201-91465-4