Все разделы
Выбрать школу

Школа. Увлечения. Большое будущее.

PROSCHOOLS · ОБРАЗОВАНИЕ РЯДОМ

Ваш город

Выберите город, чтобы находить образование и возможности рядом.

Как учитываем городКаталог и кнопки «Выбрать школу» покажут школы выбранного города.Онлайн-курсы, учебник, ГДЗ и задания к экзаменам доступны по всей России.

Популярные города

Будет выбран: Вся Россия

Учебные материалы останутся прежними.

Поиск по сайту

По всему сайтуШколы выбранного города — выше в результатах

С чего начнём?

↑ ↓ — выбрать результат · Enter — открыть · Esc — закрыть

Контрольная сумма и проверка целостности данных

💻 Информатика · 9 класс

Как с помощью контрольной суммы обнаруживают искажение данных при передаче и хранении.

Электронная таблица LibreOffice Calc
Электронная таблица LibreOffice CalcOwn work (conteúdo), The Document Foundation and Canonical (window and controls) · Wikimedia Commons · CC0

Что такое контрольная сумма

Контрольная сумма — это небольшое число, которое вычисляют по содержимому данных и хранят или передают вместе с ними. Получатель повторяет вычисление и сравнивает результат с присланной контрольной суммой. Если значения не совпали, данные были искажены при передаче или хранении.

Контрольные суммы применяют при передаче файлов по сети, при записи на диск, в штрихкодах и банковских номерах. Они не исправляют ошибку, но позволяют её надёжно обнаружить, что уже очень важно: испорченный файл лучше не использовать.

Простейший способ: сумма по модулю

Самый понятный вариант — сложить все байты (или цифры) и взять остаток от деления на некоторое число. Например, остаток от деления на 256 даёт однобайтовую контрольную сумму, которая занимает всего один байт.

нач цел data[1:5], i, cs cs := 0 нц для i от 1 до 5 cs := cs + data[i] кц cs := mod(cs, 256) вывод cs кон

Контроль чётности

Ещё проще — бит чётности: к данным добавляют один бит так, чтобы общее число единиц стало чётным. Если при передаче изменился ровно один бит, чётность нарушится, и ошибка обнаружится при проверке.

ДанныеЧисло единицБит чётности
101131
110020
000000
111031
Правило: контрольная сумма обнаруживает ошибку, но не указывает, где именно она произошла, и обычно не исправляет её. Для исправления ошибок нужны более сложные помехоустойчивые коды.

Где встречается

Последняя цифра штрихкода и номера банковской карты — это контрольная цифра, вычисленная по остальным цифрам. При вводе номера программа сразу проверяет, не ошибся ли пользователь, и сообщает об опечатке ещё до отправки данных.

В компьютерных сетях контрольные суммы встроены в протоколы передачи: если пакет пришёл повреждённым, его отбрасывают и запрашивают заново. При скачивании больших файлов на сайтах часто публикуют их контрольную сумму, чтобы пользователь мог проверить, что файл загрузился без искажений и не был подменён.

Чем длиннее контрольная сумма, тем меньше вероятность, что искажённые данные случайно дадут ту же сумму, что и исходные. Поэтому для надёжной проверки больших файлов используют не один байт, а длинные суммы из многих разрядов.

Частые ошибки: считают, что контрольная сумма исправляет данные; забывают взять остаток и получают слишком большое число; простой бит чётности не замечает сразу двух изменённых битов, потому что чётность при этом сохраняется.

Кратко о главном

  • Контрольная сумма вычисляется по содержимому данных.
  • Несовпадение сумм означает искажение данных.
  • Простые варианты: сумма по модулю и бит чётности.
  • Метод обнаруживает ошибку, но не всегда исправляет.
  • Применяется в сетях, штрихкодах и номерах карт.