Задание 1: количество информации и объём текста

Учимся считать, сколько памяти занимает текст, — это задание №1 части 1.

Информационный объём текста — это число бит (или байт), нужное, чтобы хранить все его символы при выбранной кодировке.

Что проверяет задание 1

В задании 1 вам дают текст (или число символов) и кодировку, а просят найти объём в битах, байтах или Кбайтах — либо наоборот, по объёму найти количество символов. Иногда сравнивают два варианта кодировки. Это чистая арифметика, и при правильном методе ошибиться почти невозможно.

Теория: алфавит, бит на символ, байты

Ключевые понятия:

  • Мощность алфавита N — сколько различных символов может встретиться (например, 256 для однобайтной кодировки, 32 для русских букв и т.п.).
  • Информационный вес одного символа i (бит) связан с мощностью формулой N = 2^i. То есть i — это степень двойки, дающая N.
  • Объём текста I = K · i, где K — количество символов.

Запомните таблицу степеней двойки — без неё на экзамене тяжело:

i (бит)12345678
N = 2^i248163264128256

И единицы измерения: 1 байт = 8 бит, 1 Кбайт = 1024 байт, 1 Мбайт = 1024 Кбайт. Здесь именно 1024, а не 1000 — частая ловушка.

Метод решения за 4 шага

  1. Найди мощность алфавита N (часто дана прямо или через «32 буквы», «256 символов»).
  2. Найди вес символа i по формуле N = 2^i (по таблице степеней).
  3. Умножь на число символов: I = K · i (получишь биты).
  4. Переведи в нужные единицы (÷8 — байты, ÷1024 — следующая единица).

Разбор примера

«Сообщение состоит из 180 символов. Используется кодировка, где каждый символ занимает 8 бит. Каков объём сообщения в байтах?»

Шаг за шагом: i = 8 бит дано. Объём в битах: I = 180 · 8 = 1440 бит. В байтах: 1440 ÷ 8 = 180 байт. Проверим расчётом:

# N = 256 символов -> сколько бит на символ?
N = 256
i = 1
while 2**i < N:
    i += 1
print("Бит на символ:", i)

symbols = 180
bits = symbols * i
print("Бит всего:", bits)
print("Байт:", bits // 8)

Вывод:

Бит на символ: 8
Бит всего: 1440
Байт: 180

Получилось 180 байт. Запомните: при 8-битной кодировке число байт равно числу символов — это удобная проверка «на глаз».

Обратная задача

«Объём текста — 1,5 Кбайта, каждый символ кодируется 8 битами. Сколько символов в тексте?»

Переведём всё в биты: 1,5 Кбайта = 1,5 · 1024 = 1536 байт = 1536 · 8 = 12288 бит. Делим на вес символа: 12288 ÷ 8 = 1536 символов.

kbytes = 1.5
bits = kbytes * 1024 * 8     # Кбайт -> байт -> бит
i = 8                        # бит на символ
symbols = bits / i
print("Символов:", int(symbols))

Вывод:

Символов: 1536

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

  • Считают 1 Кбайт = 1000 байт. Нет: 1024.
  • Путают биты и байты — забывают делить (или умножать) на 8.
  • Берут не ту мощность алфавита: «русские буквы» — это не всегда 33, читайте условие, там часто прямо задано N.
  • Пишут в ответ единицы измерения. В поле — только число.

Итог

  • Формулы: N = 2^i и I = K · i.
  • 1 байт = 8 бит, 1 Кбайт = 1024 байт, 1 Мбайт = 1024 Кбайт.
  • Метод: найти N → найти i → умножить на K → перевести единицы.
  • В ответ пишут только число, без «бит»/«байт».
Проверьте себя
1. Чему равен информационный вес символа, если мощность алфавита N = 32?
A4 бита
B5 бит
C6 бит
D8 бит
2. Сколько байт в 2 Кбайтах?
A2000 байт
B2024 байт
C2048 байт
D16384 байт
3. Текст из 240 символов кодируется по 8 бит на символ. Каков объём в байтах?
A240 байт
B1920 байт
C30 байт
D240·1024 байт
4. Какая из формул верна для объёма текста?
AI = N + K
BI = K · i
CI = N · K
DI = i / K
Поддержать проект