Информатика · 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случай
Пример равномерного кода
Пояснение
- в кодировке ASCII буква «A» — это 01000001, буква «B» — 01000010
- Все символы занимают ровно 8 бит
- Пример 2случай
Пример неравномерного кода
Пояснение
- азбука Морзе
- Буква «E» — «·», буква «T» — «−», буква «A» — «·−»
- Длина кода разная
- Пример 3случай
Пример однозначного декодирования
Пояснение
- код {0, 10, 11} — префиксный, поэтому сообщение 01011 можно расшифровать единственным способом: 0-10-11 (А, Б, В)
- Пример 4случай
Пример неоднозначного декодирования
Пояснение
- код {0, 01, 011} — не префиксный, сообщение 011 можно расшифровать как 0-11 (если 11 есть) или 011, что приводит к неоднозначности
Интересно знать
- Азбука Морзе — классический пример неравномерного кода, где самая частая буква в английском языке «E» кодируется одной точкой, а редкая «Q» — длинной последовательностью «--.-».
- В кодировке Unicode первые 128 символов совпадают с ASCII, что позволяет читать старые тексты на современных компьютерах.
- Идея неравномерного кодирования лежит в основе алгоритма Хаффмана, который используется в архиваторах (ZIP, RAR) для сжатия данных.
Связанные темы
- Представление информации в компьютере
- Измерение информации (бит, байт)
- Кодирование чисел
- Сжатие данных