"Информатика (базовый уровень)", Гейн А.Г., Юнерман Н.А.
Двоичное кодирование позволяет представить числа, текст, изображения, звук и видео последовательностями нулей и единиц. Оно нужно компьютеру, потому что электронным устройствам надёжно различать два состояния проще, чем множество разных значений. Однако сами биты не сообщают, что именно записано: смысл задают правила кодирования и декодирования. Благодаря общему двоичному представлению разные данные можно хранить, передавать и обрабатывать одним способом.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Кодирование информации — представление информации с помощью знаков определённого набора по установленным правилам. Иными словами, исходным данным сопоставляют записи, которые удобно хранить или передавать. Правила нужны, чтобы код можно было прочитать и восстановить исходный смысл.
Двоичный код — запись информации последовательностью нулей и единиц. Каждый отдельный разряд такой записи называется битом и может иметь значение 0 или 1. Это обозначение удобно для компьютеров, работающих с двумя различимыми состояниями.
Алфавит — конечный набор символов, используемых для кодирования сообщений. Это не обязательно буквы: алфавитом могут быть цифры, знаки или любые другие символы. Зная его состав, можно подсчитать, сколько разных значений нужно кодировать.
Универсальность двоичного кодирования — возможность представить в виде последовательностей нулей и единиц разные виды информации. Сначала данные описывают числами, затем числа записывают двоичными разрядами. Это понятие объясняет, почему один принцип подходит и для текста, и для мультимедиа.
Электронное устройство надёжнее распознаёт два устойчивых состояния, чем множество состояний, которые легко спутать. Например, наличие сигнала можно условно обозначить 1, а его отсутствие — 0. Поэтому двоичный алфавит делает запись данных проще для техники и снижает вероятность ошибки при распознавании отдельного разряда.
Последовательность битов сама по себе не подсказывает, что именно она означает. Одна и та же запись может быть числом, кодом символа или данными о цвете пикселя. Правило кодирования связывает значения с исходными данными, а правило декодирования позволяет выполнить обратное преобразование; обе стороны должны использовать одни и те же правила.
Целое число в двоичной системе записывают разрядами, вес которых зависит от позиции. Справа налево идут степени двойки: 2⁰, 2¹, 2² и далее. Значение числа получают сложением весов тех разрядов, в которых стоит 1, поэтому перестановка цифр меняет результат даже при неизменном количестве единиц.
Текст, изображение и звук сначала представляют числовыми данными. Символам текста назначают числовые коды, изображение описывают значениями пикселей, а звук — последовательностью измерений сигнала, которые называют отсчётами. Каждое полученное число затем можно записать битами, но для восстановления данных нужно знать, как именно они были организованы.
Для хранения, обработки и передачи разных данных подходят одни и те же двоичные операции, потому что компьютер работает с битами независимо от их исходного смысла. Программа может копировать или передавать последовательность, не различая, скрывает ли она текст или звук. Чтобы преобразовать данные в понятное человеку сообщение, используют соответствующий способ декодирования.
Таблица показывает, какие данные нужно получить до перевода в биты и каким может быть способ их представления. Сравнивайте не только вид информации, но и правила её кодирования: без них последовательность нельзя правильно прочитать. Примеры в последнем столбце показывают общий принцип, а конкретный формат может задавать дополнительные параметры.
| Вид информации | Что кодируется | Во что преобразуется | Пример способа двоичного представления |
|---|---|---|---|
| Текст | Символы и знаки | Числовые коды символов | Код каждого символа записывается битами |
| Целые числа | Числовое значение | Разряды двоичной системы | Сумма степеней двойки для разрядов со значением 1 |
| Изображение | Пиксели и их цвета | Числовые значения цвета или яркости | Последовательная запись кодов пикселей |
| Звук | Значения сигнала в моменты измерения | Числа-отсчёты | Двоичная запись каждого отсчёта |
| Видео | Кадры и, при наличии, звуковая дорожка | Данные изображения и звука | Кодирование кадров и звука по правилам формата |
Нужно записать число в виде суммы степеней двойки, а затем проверить результат переводом обратно. Такой способ показывает, почему каждый разряд отвечает за определённый вес, а не возникает случайно. После записи проверим сумму весов разрядов с единицами.
Ответ: 13₁₀ = 1101₂; обратная проверка даёт 13.
Пусть сообщение состоит из символов алфавита, в котором ровно 8 знаков. Сначала определим длину равномерного кода, то есть кода, где каждый знак занимает одинаковое число битов. Затем назначим символам разные комбинации и заменим ими знаки сообщения.
Ответ: на один символ требуется 3 бита; сообщение BAD кодируется последовательностью 001000011. При чтении её делят на блоки по три бита, поэтому исходные символы можно восстановить.
Предположим, что каждый пиксель может быть только чёрным или белым, а один бит задаёт один из этих двух цветов. Чтобы однозначно получить последовательность, нужно выбрать порядок обхода пикселей и соответствие цветов битам. Например, примем 0 за белый, 1 за чёрный и будем читать строки слева направо, сверху вниз.
Ответ: изображение представлено последовательностью 010011010011, её объём — 12 битов. Если изменить порядок обхода или соответствие цветов цифрам, потребуется знать новые правила, чтобы восстановить ту же картинку.
Ошибка — считать, что любой набор нулей и единиц уже является понятным сообщением. Так думают, потому что видят в двоичной записи знакомые цифры, но она не содержит подсказки о своём формате. Проверьте себя: можете ли вы объяснить, что означает каждый блок и по каким правилам его читать?
Нельзя путать число символов алфавита с количеством битов на символ. Например, восемь знаков требуют не восьми битов, а трёх, поскольку 2³ комбинаций хватает для их кодирования. Для проверки найдите минимальное n, при котором 2ⁿ не меньше количества знаков.
Двоичное число нельзя получить удалением или добавлением цифр к десятичной записи. Такая ошибка возникает, когда две системы счисления принимают за один и тот же способ записи. Разложите число по степеням двойки и проверьте результат суммой весов разрядов с единицами.
При описании изображения или звука недостаточно сказать, что данные переведены в биты. Нужно определить, что именно измеряется или кодируется, сколько значений возможно и в каком порядке записываются данные. Самопроверка проста: сможет ли другой человек по заданным правилам восстановить исходное изображение или звук?
Для понимания двоичной записи пригодятся позиционная система счисления и степени двойки: они объясняют вес каждого разряда. Единицы измерения информации помогают оценивать объём полученных данных, а понятие кодирования — связывать запись с сообщением. Эти знания нужны при изучении устройства компьютера, файлов, растровой графики, цифрового звука, сетевой передачи и объёма данных.
Связь с алгоритмами состоит в том, что двоичные данные можно хранить, передавать и обрабатывать по заданным инструкциям, не меняя общий принцип из-за вида исходной информации. Конкретный алгоритм всё же должен учитывать формат данных и правила их чтения. Поэтому один и тот же поток битов можно использовать по-разному, если различаются алгоритм и способ декодирования.
Почему компьютер использует именно два символа, а не десять?
Электронным устройствам надёжнее различать два устойчивых состояния, например наличие и отсутствие сигнала. Их удобно обозначить цифрами 1 и 0. Несколько таких разрядов позволяют кодировать много значений.
Можно ли по одной двоичной последовательности понять, что в ней записано?
Нет, без правил кодирования последовательность нулей и единиц неоднозначна. Она может обозначать число, символ текста, часть изображения или звуковые данные. Чтобы восстановить смысл, нужно знать формат и порядок записи.
Сколько битов нужно для кодирования одного символа алфавита?
Для алфавита из N символов выбирают наименьшее целое n, для которого 2ⁿ ≥ N. Например, алфавит из 8 символов кодируется тремя битами, потому что 2³ = 8. Если код должен быть одинаковой длины для всех символов, каждой комбинации назначают свой символ.
Как изображение превращается в последовательность нулей и единиц?
Растровое изображение делят на пиксели, а каждому пикселю задают числовое значение цвета или яркости. Затем значения записывают в двоичной форме в установленном порядке. Для чёрно-белого изображения достаточно одного бита на пиксель, если пиксель может быть только чёрным или белым.
Чем кодирование отличается от перевода числа в двоичную систему счисления?
Перевод числа в двоичную систему меняет его запись, сохраняя числовое значение. Кодирование шире: оно по правилам сопоставляет двоичные последовательности разным данным, например символам или цветам. Перевод числа может быть частью кодирования, но не описывает все его виды.
§ 4. Универсальность двоичного кодирования