Бит чётности (англ. Parity bit) — контрольный бит в вычислительной технике и сетях передачи данных, служащий для проверки общей чётности двоичного числа (чётности количества единичных битов в числе).
Применение
правитьВ последовательной передаче данных часто используется формат 7 бит данных, бит чётности, один или два стоповых бита. Такой формат аккуратно размещает все 7-битные ASCII символы в удобный 8-битный байт. Также допустимы другие форматы: 8 бит данных и бит чётности.
В последовательных коммуникациях чётность обычно контролируется оборудованием интерфейса (например UART). Признак ошибки становится доступен процессору (и ОС) через статусный регистр оборудования. Восстановление ошибок обычно производится повторной передачей данных, подробности которой обрабатываются программным обеспечением (например, функциями ввода-вывода операционной системы)
Контроль некой двоичной последовательности (например, машинного слова) с помощью бита чётности также называют контролём по паритету. Контроль по паритету представляет собой наиболее простой и наименее мощный метод контроля данных. С его помощью можно обнаружить только одиночные ошибки в проверяемых данных. Двойная ошибка будет неверно принята за корректные данные. Поэтому контроль по паритету применяется к небольшим порциям данных, как правило к каждому байту, что даёт коэффициент избыточности для этого метода 1/8. Метод редко применяется в компьютерных сетях из-за невысоких диагностических способностей. Существует модификация этого метода — вертикальный и горизонтальный контроль по паритету. Отличие состоит в том, что исходные данные рассматриваются в виде матрицы, строки которой составляют байты данных. Контрольный разряд подсчитывается отдельно для каждой строки и для каждого столбца матрицы. Этот метод обнаруживает значительную часть двойных ошибок, однако обладает большей избыточностью. Он сейчас также почти не применяется при передаче информации по сети.
Полиномы CRC и бит чётности
правитьКонтроль по чётности фактически является специальным случаем проверки избыточности циклической суммы с полиномом x+1.
Примеры
правитьБит чётности или контрольный разряд формируется при выполнении операции «Исключающее-ИЛИ» последовательно (1 бит с 2, результат с 3, результат с 4 и т.д.).
Рассмотрим схему, использующую девятибитные кодовые слова, состоящие из восьми бит данных, за которыми следует бит чётности.
- Число 10111101 содержит 6 '1' битов. Бит чётности будет 0, получаем кодовое слово 101111010.
- Число 01110011 содержит 5 '1' битов. Бит чётности будет 1, получаем кодовое слово 011100111.
- Число 00000000 содержит 0 '1' битов. Бит чётности будет 0, получаем кодовое слово 000000000.
Пустой или несуществующий поток битов также имеет ноль единичных битов, поэтому бит чётности будет '0'.
См. также
править- Чётность используется для восстановления данных в RAID.
- Parity RAM использует чётность для обнаружения ошибок памяти.
- Код Хэмминга — следующий шаг после бита чётности.
Литература
править- Генри С. Уоррен, мл. Глава 5. Подсчет битов // Алгоритмические трюки для программистов = Hacker's Delight. — М.: «Вильямс», 2007. — С. 288. — ISBN 0-201-91465-4.