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

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

"Информатика и ИКТ (изд. "ДРОФА")", Быкадоров Ю.А.

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

Кратко о теме

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

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

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

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

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

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

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

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

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

Одному сообщению можно сопоставить последовательность символов, чисел или сигналов. Например, в условном коде букве А соответствует знак 1, а букве Б — знак 2: тогда текст «АБ» превращается в «1, 2». Это возможно, потому что код задаёт замену исходных знаков новыми обозначениями, сохраняя информацию о сообщении.

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

Работа с таблицей соответствий состоит из двух встречных действий. При кодировании для каждого знака исходного текста находят соответствующую запись в таблице и выписывают её в том же порядке. При декодировании ищут в таблице кодовое обозначение и заменяют его исходным знаком; так, таблица А→1, Б→2, В→3 превращает последовательность 2, 1 в «БА».

Чтобы восстановление было однозначным, нужно знать и соответствия, и границы обозначений. Если коды состоят из нескольких цифр, непрерывная запись может допускать разные разбиения: например, 112 можно прочитать как 11|2 или 1|12. При разных таблицах эти разбиения могут дать разные тексты, поэтому границы задают разделителями или выбирают такой код, который однозначно разбивается.

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

Кодирование и декодирование сообщения

ЭтапЧто даноЧто выполняетсяЧто получается
КодированиеИсходное сообщение и правило (ключ) кодированияЗамена знаков или групп знаков кодовыми обозначениямиКодовое сообщение
ДекодированиеКодовое сообщение и правило (ключ) кодированияОбратное преобразование кодовых обозначенийВосстановленное исходное сообщение

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

Разбор задач

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

  1. Берём первую букву слова — Б — и находим в таблице её код: 2.
  2. Для следующей буквы А находим код 1, а для последней буквы В — код 3.
  3. Записываем коды в исходном порядке: сначала 2, затем 1 и 3.

Ответ: слово «БАВ» кодируется последовательностью 213. Порядок знаков не меняют, потому что иначе получилось бы кодовое сообщение для другого текста.

Задача 2. По той же таблице декодируйте последовательность 3, 1, 2. Теперь нужно выполнить обратную замену: каждой цифре найти соответствующую букву. Запятые уже показывают границы кодовых обозначений.

  1. Для первой цифры 3 находим в таблице букву В.
  2. Цифре 1 соответствует А, а цифре 2 — Б.
  3. Записываем найденные буквы в том порядке, в котором шли цифры: В, А, Б.

Ответ: восстановленное слово — «ВАБ». Проверка простая: если заменить его буквы по таблице, снова получится 3, 1, 2.

Задача 3. Код задан заменами А→1, Б→11, В→2. Можно ли однозначно декодировать последовательность 112 без разделителей? Сначала проверим, где могут проходить границы кодов: код 11 подходит для Б, а код 1 в этой таблице не задан. Однако последовательность можно разделить иначе, если учитывать только имеющиеся коды.

  1. Проверяем разбиение 11|2: обе части есть в таблице, поэтому получаем БВ.
  2. Проверяем разбиение 1|12: кодов 1 и 12 в таблице нет, значит такой вариант не подходит.
  3. Проверяем разбиение 1|1|2: отдельного кода 1 также нет. Других разбиений на коды из таблицы для 112 не получается.

Ответ: для указанной таблицы последовательность 112 декодируется однозначно как «БВ». Чтобы границы были очевидны при записи и передаче, можно использовать разделитель: 11|2. Если бы для цифры 1 тоже существовал исходный знак, появилось бы дополнительное разбиение, и потребовалось бы отдельно устранять неоднозначность.

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

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

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

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

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

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

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

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

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

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

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

Почему для декодирования нужен ключ или правило?

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

Что делать, если последовательность кода можно разбить на группы несколькими способами?

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

Всегда ли после декодирования получается исходное сообщение без ошибок?

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

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

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

Учебник

Оглавление →
Предмет
Информатика
Класс
8 класс
Учебник
"Информатика и ИКТ (изд. "ДРОФА")", Быкадоров Ю.А.