Равномерное двоичное кодирование символов
💻 Информатика · 8 класс
Что такое равномерное кодирование
Равномерное (равнодлинное) кодирование — это способ записи символов алфавита двоичными кодами одинаковой длины. Каждому символу ставится в соответствие уникальная цепочка из нулей и единиц фиксированной длины. Такой подход упрощает чтение сообщения: компьютер просто отсчитывает одинаковые порции битов, не угадывая, где заканчивается код одного символа и начинается код другого.
Именно равномерное кодирование используется в большинстве привычных кодировок. Например, в таблице ASCII каждый символ кодируется восемью битами, поэтому коды всех символов имеют одинаковую длину.
Связь длины кода и мощности алфавита
Мощность алфавита N — это число различных символов в нём. Если на каждый символ отводится i битов, то можно закодировать не более N = 2^i символов. Это основная формула алфавитного подхода. Из неё минимальная длина кода находится из условия 2^i ≥ N: берут наименьшее целое i, при котором степень двойки покрывает все символы.
Сколько битов нужно
| Символов в алфавите | Битов на символ |
|---|---|
| 2 | 1 |
| 4 | 2 |
| 8 | 3 |
| 16 | 4 |
| 32 | 5 |
| 64 | 6 |
| 256 | 8 |
Разбор примера
Алфавит содержит 33 буквы русского языка. Сколько битов нужно на букву при равномерном кодировании? Подбираем степень двойки, не меньшую 33:
2^5 = 32 < 33
2^6 = 64 ≥ 33
Пяти битов мало, значит нужно i = 6 битов на символ. Тогда сообщение из 20 букв займёт:
20 · 6 = 120 битов = 15 байтов
Обратная задача
Бывает и обратная задача: известна длина кода, нужно найти мощность алфавита. Если на символ отводится 7 битов, то в алфавите может быть 2^7 = 128 различных символов. Зная общий объём сообщения и длину одного кода, можно найти число символов в тексте: достаточно поделить объём на длину кода.
Равномерное и неравномерное кодирование
Кроме равномерного, существует и неравномерное кодирование, при котором частым символам дают короткие коды, а редким — длинные. Оно экономит память, но усложняет чтение: нужно особое условие, чтобы коды не путались между собой. В школьном курсе основным считается именно равномерное кодирование, потому что оно проще и применяется в большинстве привычных кодировок.
Разбор обратного примера
Сообщение записано в алфавите из 64 символов и занимает 300 битов. Найдём длину текста. Сначала длина кода одного символа: 2^6 = 64, значит i = 6 битов. Тогда число символов равно:
300 : 6 = 50 символов
Частая ошибка. Если2^iчуть меньшеN, нельзя округлять вниз: код должен вмещать все символы. Берут ближайшую степень двойки, которая не меньше мощности алфавита. Длина кода всегда целое число битов.
Кратко о главном
- При равномерном кодировании все символы имеют код одной длины.
- Число символов и длина кода связаны формулой
N = 2^i. - Длину кода находят из условия
2^i ≥ N, округляя вверх до целого. - Информационный объём сообщения равен числу символов, умноженному на длину кода.
- Зная объём и длину кода, можно найти количество символов в тексте.