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

§ 14. Кодирование текстовой информации

"Информатика. Базовый уровень", Босова Л.Л., Босова А.Ю.

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

Кратко о теме

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

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

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

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

Алфавит — конечное множество символов, которыми записывают сообщение. Это не только буквы: в алфавит могут входить пробел, цифры, знаки препинания и другие знаки. Такое понимание помогает правильно считать символы в тексте и не пропускать знаки, которые тоже занимают место.

Мощность алфавита — количество символов в нём; обычно её обозначают N. Чтобы каждому символу назначить собственный двоичный код одинаковой длины, выбирают число битов k так, чтобы было доступно не меньше N кодов. Поэтому проверяют условие 2^k ≥ N, а не приравнивают число битов к числу символов.

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

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

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

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

Если алфавит содержит N символов, каждому из них нужен отдельный код. Последовательность из k бит может иметь 2^k вариантов, поскольку в каждой позиции возможны 0 или 1. Поэтому ищут наименьшее целое k, при котором 2^k ≥ N: меньшая длина не даст достаточно разных кодов, а большая создаст запас. Например, 32 варианта помещаются в 5 бит, так как 2⁵ = 32.

При фиксированной длине кода объём сообщения зависит от количества символов и веса каждого из них. Если в тексте L символов, а на один символ приходится k бит, то объём равен L × k бит. Здесь считают все знаки сообщения, включая пробелы и пунктуацию. Чтобы получить байты, результат в битах делят на 8, поскольку один байт содержит восемь битов.

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

ASCII изначально задаёт 128 кодов и подходит для базового набора латинских букв, цифр и управляющих знаков, но не охватывает все алфавиты мира. Unicode присваивает символам разных языков и систем письма общие числовые номера, называемые кодовыми точками. Чтобы хранить эти номера в байтах, применяют разные кодировки, например UTF-8; длина записи в них может меняться. Поэтому Unicode обеспечивает широкий набор символов, а конкретная кодировка задаёт их представление в файле или при передаче.

Сравнение способов кодирования текстовых символов

ХарактеристикаASCIIUnicode
Какие символы охватываетБазовые латинские буквы, цифры, знаки и управляющие символыСимволы множества языков, письма и дополнительные знаки
Число возможных кодов128 в исходном 7-битовом ASCIIБолее миллиона возможных кодовых точек
Способ представления символаКод из 7 бит; часто хранится в байтеКодовая точка записывается байтами в кодировках, например UTF-8
Применение и ограниченияПодходит для базового латинского набора, не содержит большинства национальных буквПоддерживает много письменностей; объём записи зависит от кодировки

Сравнивайте сначала охват символов: ASCII удобен для ограниченного набора, Unicode нужен для текстов на разных языках. Затем смотрите, различаете ли вы число кодовых точек и способ их записи в байтах. Для оценки размера конкретного файла важно знать не только набор символов, но и используемую кодировку.

Разбор задач

Задача 1. В алфавите 32 символа. Определите минимальное число битов, необходимое для кодирования одного символа. Нужно подобрать длину кода, которая даст не меньше 32 разных двоичных комбинаций, и проверить, что более короткого варианта недостаточно.

  1. Обозначим длину кода через k; число кодов равно 2^k.
  2. Проверим k = 5: 2⁵ = 32, этого хватает для всех символов.
  3. Проверим меньшую длину k = 4: 2⁴ = 16, таких кодов мало.

Ответ: минимальная длина кода — 5 бит. Ровно 32 кода позволяют назначить уникальный код каждому символу алфавита.

Задача 2. Сообщение состоит из 120 символов, каждый кодируется восьмибитовым кодом. Найдите объём сообщения в битах и байтах. Здесь задана одинаковая длина кода, поэтому достаточно умножить число символов на вес одного символа, а затем перевести результат в байты.

  1. Найдём объём в битах: 120 × 8 = 960 бит.
  2. В одном байте 8 бит, поэтому разделим 960 на 8.
  3. Получим 960 ÷ 8 = 120 байт.

Ответ: 960 бит, или 120 байт. Подсчёт предполагает, что учитываются именно 120 закодированных символов и каждый занимает ровно восемь битов.

Задача 3. Сообщение из 200 символов занимает 400 байт. Определите средний объём кодирования одного символа и объясните, можно ли считать, что все символы кодируются одинаково. Сначала выразим общий объём в тех же единицах, в которых будем находить среднее значение.

  1. Переведём байты в биты: 400 × 8 = 3200 бит.
  2. Разделим объём на число символов: 3200 ÷ 200 = 16 бит на символ в среднем.
  3. Сравним среднее с длиной отдельного кода: без сведений о кодировке нельзя утверждать, что каждый код имеет длину 16 бит.

Ответ: средний объём равен 16 битам, или 2 байтам на символ. Если коды имеют переменную длину, отдельные символы могут занимать разное число битов, хотя среднее составляет 16.

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

Ошибочно считать, что число битов равно мощности алфавита: например, для 32 символов брать 32 бита. Так путают количество вариантов и длину кода. Проверка простая: вычислите 2^k и убедитесь, что результат не меньше N; для 32 символов достаточно k = 5.

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

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

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

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

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

Тема продолжает изучение измерения информации: объём текста можно находить по числу символов и информационному весу каждого из них. При фиксированной длине кода используется формула L × k, где L — число символов, а k — число битов на символ. При кодах переменной длины вместо этого простого подсчёта требуется знать длину каждого кода.

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

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

  • Текст в компьютере хранится как последовательность числовых кодов символов.
  • Алфавит включает все символы, которые могут использоваться в сообщении.
  • Число возможных двоичных кодов длины k равно 2^k.
  • При фиксированной длине кода объём текста равен числу символов, умноженному на вес одного символа.
  • Для правильного чтения текста отправитель и получатель должны использовать согласованную кодировку.
  • Unicode позволяет представлять символы многих языков и систем письма.

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

Почему компьютеру нужны числовые коды для букв?

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

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

Нужно найти наименьшее целое k, для которого 2^k не меньше мощности алфавита N. Например, для 32 символов достаточно 5 битов, так как 2⁵ = 32.

Учитываются ли пробелы при подсчёте объёма текста?

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

Почему текст иногда отображается нечитаемыми символами?

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

Чем Unicode отличается от ASCII?

ASCII — небольшая таблица кодов для латинских букв, цифр и базовых знаков. Unicode задаёт коды для символов множества языков и систем письма; способы записи этих кодов в байтах, например UTF-8, могут различаться.

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

§ 14. Кодирование текстовой информации

Эта же тема в других учебниках

Учебник

Оглавление →
Предмет
Информатика
Класс
10 класс
Учебник
"Информатика. Базовый уровень", Босова Л.Л., Босова А.Ю.