← К списку тем

Информатика · 7 класс · Информатика ФГОС · урок 15 · только теория

Кодирование текстов. Равномерные и неравномерные коды

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

Чему учимся понимать

Научиться понимать, как кодируется текст в компьютере и чем отличаются равномерные и неравномерные коды.

Зачем это нужно

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

Опорные понятия

Кодирование информацииКодРавномерный кодНеравномерный кодОднозначное декодированиеБитБайтКодовая таблицаПрефиксный кодДекодирование

Главные тезисы

  • Кодирование — это преобразование информации из одной формы представления в другую, например, из текста в последовательность битов.
  • Код — это правило (система) сопоставления символов или сигналов другим символам или сигналам.
  • Равномерный код — это код, в котором все кодовые слова имеют одинаковую длину (например, 8 бит на символ).
  • Неравномерный код — это код, в котором кодовые слова имеют разную длину (например, код Морзе).
  • Для однозначного декодирования неравномерного кода необходимо, чтобы ни одно кодовое слово не было началом другого (условие Фано).
  • Компьютер хранит текст в виде последовательности байтов, где каждый символ обычно кодируется одним или несколькими байтами.
  • Выбор кода влияет на объём памяти, необходимый для хранения текста, и на скорость его передачи.

Определения

Кодирование
Превращение информации из одной формы в другую, например, из букв в числа или из чисел в электрические сигналы.
Код
Система условных знаков (символов, сигналов) для представления информации.
Равномерный код
Код, в котором все кодовые слова имеют одинаковую длину (например, каждый символ занимает 8 бит).
Неравномерный код
Код, в котором кодовые слова имеют разную длину (например, буква «Е» кодируется короче, чем буква «Щ»).
Однозначное декодирование
Свойство кода, при котором закодированное сообщение можно расшифровать только одним способом.
Префиксный код
Неравномерный код, в котором ни одно кодовое слово не является началом другого, что гарантирует однозначное декодирование.
Бит
Наименьшая единица информации, принимающая значение 0 или 1.
Байт
Единица информации, состоящая из 8 бит, обычно используется для кодирования одного символа.

Ключевые факты и правила

  • В компьютере текст кодируется с помощью кодовых таблиц, например, ASCII (7 или 8 бит на символ) или Unicode (16 или 32 бита на символ).
  • Равномерный код проще в обработке, но может быть неэффективным по объёму, если символы встречаются с разной частотой.
  • Неравномерный код позволяет сжимать информацию, присваивая частым символам короткие коды, а редким — длинные (как в азбуке Морзе).
  • Условие Фано: для однозначного декодирования неравномерного кода необходимо, чтобы ни одно кодовое слово не было префиксом (началом) другого.
  • Пример равномерного кода: каждый символ в кодировке ASCII занимает 8 бит (1 байт).
  • Пример неравномерного кода: азбука Морзе, где буква «Е» — точка (короткий сигнал), а буква «Т» — тире (длинный сигнал).
  • Код может быть неравномерным, но не префиксным, тогда декодирование может быть неоднозначным (например, код {0, 01, 011} — не префиксный, так как 0 — начало 01 и 011).

Теория

1. Понять, что любая информация в компьютере хранится в виде битов (0 и 1).

2. Осознать, что для представления текста нужно сопоставить каждому символу уникальный двоичный код.

3. Различать равномерные и неравномерные коды: в равномерном все коды одинаковой длины, в неравномерном — разной.

4. Усвоить условие Фано: для однозначного декодирования неравномерного кода нужно, чтобы ни один код не был началом другого.

5. Применить эти знания для анализа примеров кодов и понимания, почему одни коды удобнее других.

Примеры

  1. Пример 1случай

    Пример равномерного кода

    Пояснение

    • в кодировке ASCII буква «A» — это 01000001, буква «B» — 01000010
    • Все символы занимают ровно 8 бит
  2. Пример 2случай

    Пример неравномерного кода

    Пояснение

    • азбука Морзе
    • Буква «E» — «·», буква «T» — «−», буква «A» — «·−»
    • Длина кода разная
  3. Пример 3случай

    Пример однозначного декодирования

    Пояснение

    • код {0, 10, 11} — префиксный, поэтому сообщение 01011 можно расшифровать единственным способом: 0-10-11 (А, Б, В)
  4. Пример 4случай

    Пример неоднозначного декодирования

    Пояснение

    • код {0, 01, 011} — не префиксный, сообщение 011 можно расшифровать как 0-11 (если 11 есть) или 011, что приводит к неоднозначности

Интересно знать

  • Азбука Морзе — классический пример неравномерного кода, где самая частая буква в английском языке «E» кодируется одной точкой, а редкая «Q» — длинной последовательностью «--.-».
  • В кодировке Unicode первые 128 символов совпадают с ASCII, что позволяет читать старые тексты на современных компьютерах.
  • Идея неравномерного кодирования лежит в основе алгоритма Хаффмана, который используется в архиваторах (ZIP, RAR) для сжатия данных.

Связанные темы

  • Представление информации в компьютере
  • Измерение информации (бит, байт)
  • Кодирование чисел
  • Сжатие данных