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

Что такое кодирование информации
Кодирование — это представление информации с помощью некоторого набора знаков (кода). Например, буквы записывают звуки речи, дорожные знаки кодируют правила движения, а ноты — музыку. Обратное действие, когда по коду восстанавливают исходное сообщение, называется декодированием.
Один и тот же смысл можно записать разными способами. Слово «дом» можно произнести вслух, написать буквами, изобразить рисунком или передать азбукой Морзе. Все эти формы — разные коды для одной и той же информации.
Зачем нужно кодирование
- чтобы хранить сведения (запись в тетради, файл в памяти);
- чтобы передавать их на расстояние (сигналы светофора, флажки);
- чтобы защитить сообщение от посторонних (тайнопись, шифр).
Способы кодирования
Принято выделять три основных способа представления одной и той же информации.
| Способ | Чем кодируют | Пример |
|---|---|---|
| Графический | рисунками, значками | пиктограмма, дорожный знак |
| Числовой | числами | номер дома, телефон |
| Символьный | знаками алфавита | слово, формула |
Разобранный пример
Закодируем слово, заменив каждую букву её порядковым номером в русском алфавите. Тогда слово «КОД» превращается в набор чисел:
К → 12, О → 16, Д → 5 ⇒ код слова: 12 16 5
Чтобы декодировать запись 12 16 5, нужно знать правило (таблицу соответствия букв и номеров). Без ключа набор чисел останется непонятным.
Правило. Кодирование и декодирование возможны только тогда, когда отправитель и получатель пользуются одним и тем же кодом. Частая ошибка — забыть, что у получателя должен быть тот же ключ, иначе сообщение прочитать нельзя.
Однозначность кода
Для однозначного декодирования у всего сообщения должно быть единственное разбиение на кодовые слова. Разные коды отдельных букв необходимы, но при записи без разделителей этого недостаточно: например, 01 может означать одну букву с кодом 01 или две с кодами 0 и 1. Условие Фано даёт удобный достаточный способ избежать этой неоднозначности.
Кодирование в жизни и в компьютере
Люди кодировали информацию задолго до появления компьютеров. Моряки переговаривались флажками, телеграфисты передавали слова точками и тире, разведчики прятали смысл в шифрах. Во всех этих случаях работает одна и та же идея: смысл заменяют условными знаками, о значении которых заранее договорились.
Компьютер тоже всё кодирует, только использует для этого всего два знака — 0 и 1. Буквами, числами, рисунками и звуками внутри машины становятся длинные цепочки нулей и единиц. Чтобы человек увидел привычный текст или картинку, компьютер декодирует эти цепочки обратно. Поэтому кодирование — это основа работы любой вычислительной техники, а не просто игра в шифры.
Перекодирование
Иногда информацию переводят из одного кода в другой — это называют перекодированием. Например, текст, набранный буквами, переводят в азбуку Морзе, а её сигналы при необходимости снова возвращают в буквы. При перекодировании смысл сообщения не меняется, меняется лишь форма его записи. Главное условие — чтобы оба кода были известны и не вносили путаницы.
| Исходная форма | Код | Где применяют |
|---|---|---|
| буквы | азбука Морзе | связь, телеграф |
| буквы | нули и единицы | компьютер |
| числа | штрих-код | магазин, склад |
Почему разных кодов букв недостаточно
Пусть А кодируется как 0, Б — как 01, В — как 1. Все три кодовых слова разные, но цепочка 01 читается двояко: Б или АВ. Значит, уникальность отдельных кодов ещё не гарантирует единственности разбиения целого сообщения.
Для записи без разделителей удобно условие Фано: ни одно кодовое слово не является началом другого. Такой код называют префиксным. По мере чтения слева направо можно сразу выделять очередной символ. Условие достаточно для однозначного декодирования, но не является обязательным для всех однозначных кодов.
Редакционная таблица и декодирование
| Буква | Код |
|---|---|
| А | 0 |
| Б | 10 |
| В | 110 |
| Г | 111 |
Ни один код не начинает другой. Цепочку 0101101110 разбиваем как 0 | 10 | 110 | 111 | 0, получаем АБВГА. В ней пять букв, но десять бит: число символов и длина записи — разные величины.
Можно ли добавить код?
Если уже заняты 00 и 1, то для третьей буквы можно взять 01. Взять 0 нельзя: он стал бы началом существующего 00. Взять 10 тоже нельзя: существующий 1 стал бы его началом. Проверять нужно оба направления отношения «быть началом», а не только совпадение строк.
Для углубления: код А=0, Б=01 нарушает прямое условие Фано, но однозначен для конечного сообщения — его можно разбирать справа налево, поскольку ни одно слово не является окончанием другого. Например, 001 разбирается как 0 | 01. Нарушение прямого условия Фано само по себе не доказывает неоднозначность; для неё нужно показать два различных исходных сообщения с одной записью.
Наконец, кодирование не обязательно скрывает смысл: открытая таблица букв — не защита переписки. Секретность относится к задачам шифрования.
Справочные материалы: Что такое кодирование информации — исходная тема. Связанные уроки: Дерево вариантов и перебор, Циклы с известным числом повторений.
Кратко о главном
- Кодирование — это запись информации с помощью знаков кода.
- Декодирование — обратный перевод кода в исходное сообщение.
- Одну информацию кодируют графически, числами или символами.
- Декодировать сообщение можно только с тем же ключом, что и при кодировании.
- Хороший код однозначен: одному коду — один смысл.