На Горох
Информатика, 10 класс

§ 4. Код и кодирование

"Информатика (углублённый уровень)", Калинин И.А., Самылкина Н.Н.

Объяснение темы В оглавлении: § 4. Код и кодирование

Кратко о теме

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

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Код — система условных знаков и правил, позволяющая представлять сообщения. Знаками могут быть буквы, цифры, звуковые или световые сигналы. Правила связывают исходные сообщения с их представлениями. Без таких правил одинаковая последовательность могла бы пониматься по-разному.

Кодирование — преобразование сообщения в последовательность символов выбранного кода. Например, если буквам А и Б соответствуют 1 и 0, сообщение БА можно заменить последовательностью 01. Это понятие нужно, чтобы описывать сам процесс перехода от исходной формы к условной записи. Способ кодирования выбирают под конкретную задачу.

Декодирование — восстановление исходного сообщения по его кодовому представлению и правилам кода. Если известно, что А = 1, а Б = 0, последовательность 01 читается как БА. Декодирование необходимо, чтобы получатель понял переданное или сохранённое сообщение. Без правил одна и та же запись может иметь иной смысл.

Кодовая комбинация — последовательность знаков кода, которой по правилам кодирования сопоставляется сообщение или его часть. Для отдельной буквы комбинацией может быть один знак, а для другого кода — несколько знаков. Это понятие помогает различать отдельные элементы кода и целую запись сообщения. Например, в коде А = 1, Б = 0 комбинация 10 представляет АБ.

Как это устроено

Информацию кодируют, когда её нужно удобнее хранить, передавать или обрабатывать. Разные задачи предъявляют разные требования: запись для компьютера должна быть пригодна для обработки, а сигнал для связи — различим получателем. Поэтому универсального способа на все случаи нет. При выборе кода учитывают, какие данные представляют и как их будут использовать.

Любой код строится из двух частей: набора используемых знаков и правил соответствия. Сначала определяют, какими символами можно записывать данные, затем устанавливают, какие комбинации означают конкретные сообщения или их части. Если задать только знаки, но не правила, получатель не поймёт, что означает запись. Например, наличие символов 0 и 1 ещё не объясняет, какой букве соответствует каждый из них.

Кодирование и декодирование — два связанных направления преобразования. Пусть А соответствует 1, а Б — 0: сообщение БАБ при кодировании превращается в 010, потому что каждой букве заменой соответствует свой знак. При декодировании ту же последовательность читают по тем же правилам и получают БАБ. Сохранение порядка букв позволяет восстановить их исходную последовательность.

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

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

Сравнение способов представления сообщения

Способ кодированияИспользуемые знакиКак задаются правилаПример кодовой комбинацииЧто нужно для декодирования
Кодирование букв последовательностями символовБуквы, цифры или другие символыКаждой букве или группе букв сопоставляют комбинациюДля А = 1, Б = 0: БА → 01Таблица соответствий и способ разделить комбинации
Кодирование чисел двоичными комбинациями0 и 1Значения чисел представляют по правилам двоичной записиПять → 101Знание двоичной системы счисления и границ числа
Кодирование сообщений условными сигналамиНапример, короткие и длинные сигналыСигналам или их сочетаниям назначают значенияКороткий сигнал — условный знакПравила сигналов, их порядок и границы сообщений

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

Разбор задач

Задача 1. Сообщению «А» сопоставили знак «1», а сообщению «Б» — знак «0». Закодируем сообщение «БАБ». Нужно заменить каждый исходный знак соответствующей комбинацией. Порядок букв при этом сохраняется.

  1. Первой в сообщении стоит Б, ей соответствует 0.
  2. Следом идёт А, ей соответствует 1.
  3. Последняя буква — Б, её код снова равен 0.

Ответ: 010. При проверке можно разделить результат на знаки по одному и сопоставить их с буквами. Так получается исходное БАБ.

Задача 2. В коде буквам А и Б соответствуют 0 и 1. Декодируем последовательность 0101. Поскольку каждой букве соответствует один знак, запись можно читать по одному символу слева направо. Важно пользоваться именно правилами, указанными в условии.

  1. Первый знак 0 означает А.
  2. Второй знак 1 означает Б.
  3. Третий знак 0 снова означает А, четвёртый знак 1 — Б.

Ответ: АБАБ. Повторная подстановка кодов букв даёт 0101, поэтому результат согласуется с условием. Если бы длины комбинаций различались, сначала потребовалось бы выяснить, как делить последовательность.

Задача 3. В коде А = 0, Б = 1, В = 01. Нужно выяснить, однозначно ли декодируется последовательность 01. Проверим, можно ли прочитать её более чем одним способом. Необходимо учитывать все комбинации, которые заданы в условии.

  1. Вся последовательность 01 целиком является кодом буквы В.
  2. Ту же запись можно разделить на 0 и 1: это коды букв А и Б.
  3. Получились два разных сообщения: В и АБ.

Ответ: однозначно декодировать 01 нельзя. Неоднозначность возникает из-за того, что код буквы В совпадает с сочетанием кодов А и Б. Чтобы устранить проблему, правила должны позволять однозначно определять границы комбинаций.

Типичные ошибки

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

При кодировании иногда переставляют кодовые комбинации, хотя порядок исходных знаков обычно нужно сохранить. Ошибка появляется, если воспринимать набор комбинаций как неупорядоченный список. Сопоставляйте исходные символы и их коды слева направо. Затем декодируйте результат и убедитесь, что получилась исходная последовательность.

Нельзя считать, что любой набор комбинаций однозначно декодируется. Разные сообщения могут давать одинаковую последовательность, если одни коды совпадают с сочетанием других. Такая ошибка возникает, когда проверяют только соответствие отдельных знаков. Для самопроверки найдите все допустимые разбиения записи и выясните, приводят ли они к разным сообщениям.

Декодировать последовательность без знания правил кода тоже нельзя: одинаковая комбинация в разных кодах может означать разное. Иногда смысл пытаются угадать по знакомому виду записи, но это не надёжный способ. Перед декодированием найдите таблицу соответствий или описание правил. Если правил нет, однозначно восстановить сообщение может быть невозможно.

Связь с другими темами

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

Что запомнить

  • Код задаёт знаки и правила представления сообщений.
  • Кодирование преобразует сообщение в кодовую последовательность.
  • Декодирование восстанавливает сообщение по правилам кода.
  • Для однозначного восстановления правила кода должны исключать неоднозначность.
  • Одну информацию можно представить разными кодами.
  • Кодирование само по себе не скрывает содержание сообщения.

Частые вопросы по теме

Чем код отличается от кодирования?

Код — это используемые знаки и правила, связывающие их с сообщениями. Кодирование — процесс применения этих правил: исходное сообщение заменяют кодовой последовательностью.

Зачем кодируют сообщения?

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

Всегда ли кодовую последовательность можно декодировать однозначно?

Нет. Если правила допускают несколько разбиений последовательности на кодовые комбинации, исходное сообщение может восстановиться по-разному. Для однозначного декодирования код должен исключать такие варианты.

Чем кодирование отличается от шифрования?

Кодирование меняет форму представления сообщения, но само по себе не скрывает его смысл. Шифрование используют, чтобы ограничить доступ к содержанию без нужного ключа.

Можно ли одно сообщение закодировать разными способами?

Да, для одного сообщения можно выбрать разные коды и разные последовательности знаков. Выбор зависит от назначения: важно, например, насколько удобно данные хранить, передавать или обрабатывать.

Спросить по теме параграфа

§ 4. Код и кодирование

Учебник

Оглавление →
Предмет
Информатика
Класс
10 класс
Учебник
"Информатика (углублённый уровень)", Калинин И.А., Самылкина Н.Н.