Представление текстовой информации в компьютере (равномерный код)

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

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

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

Как происходит кодирование текстовой информации в двоичной системе?

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

И попробуем закодировать слово ЗИМА

Таким образом: ЗИМА  => 1000100111010

А теперь попробуем его раскодировать.

И тут возникает проблема, потому что могут получиться совершенно разные слова.

И  так далее…, среди которых есть и ЗИМА.

Равномерный код

Что делать?

Например, поставить пробелы между числами, но у нас только нули и единицы. Тем не менее, выход есть, точнее два выхода.

Первое решение: «Сказать» компьютеру, что для кодирования одного символа будет использоваться одинаковое количество двоичных цифр в числе (в нашем случае четыре цифры):

Добавив незначащие нули, получим  равномерный код ,  который можно будет однозначно раскодировать:

Количество информации

Для того, чтобы определить какое максимальное количество символов алфавита можно закодировать в данной системе счисления, используя указанное количество разрядов (знакомест), нужно воспользоваться формулой:

где N  – количество букв, мощность алфавита,
а  – основание системы счисления
i – количество цифр (знакомест) в числе, которым кодируется один символ в данной системе счисления с основанием а

ВАЖНО: N,a,i – целые числа   

 Действительно, не может быть трех с половиной знаков, не может алфавит состоять из полутора букв, и основание системы счисления должно быть целым числом 🙂

Сознательно пишу количество цифр (знакомест, разрядов), а не битов, потому что кодировать слова можно в разных системах счисления, а не только в двоичной.

Кстати, компьютер с использованием троичной системы счисления был сделан в России. И единицей информации там был троичный бит – ТРИТ

Вообще, максимальное количество символов, которое можно закодировать в двоичной системе счисления, используя равномерный код из четырех битов[1] (разрядов, знакомест).

А, самое большое число (в переводе на десятичную систему счисления), которое можно записать в данной системе счисления, используя  i – разрядов:

Действительно 1510=11112

Так происходит, потому что чисел всего 16 (от 0 до 15).

В информатике все начинается с НУЛЯ[2] !!!

ЗАДАЧА: Какое минимально возможное битов потребуется, чтобы закодировать английский алфавит (в английском алфавите 26 букв).

 РЕШЕНИЕ:

Используем формулу:

Согласно правилу, мы должны использовать в формуле только целые числа.

Используем метод подбора (А я всегда говорил, что знать степени двойки пригодится!):

24 = 16 символов
25 = 32 символа

Четырьмя битами можно закодировать только 16 символов, а у нас – 26.
Пятью битами можно закодировать 32 символа.
Если можно 32 символа закодировать, то и 26 символов тем более закодируются, и еще останетсяJ.

Ответ: 5 битов.

ЗЫЖ Можно и шестью, и семью символами закодировать и т.д., но в данной задаче стоит условие: ЗАКОДИРОВАТЬ МИНИМАЛЬНО ВОЗМОЖНЫМ КОЛИЧЕСТВОМ БИТОВ

Кстати, как правильно говорить  БИТОВ или БИТ?
Согласно рекомендации Института русского языка имени В. В. Виноградова Российской Академии Наук такие слова как байт и бит, склонять необходимо.

Кроме обычной формы родительного падежа (битов, байтов, килобайтов) существует счетная форма, которая используется в сочетании с числительными: 8 байт, 16 килобайт. Счетная форма является разговорной.
Точно так же, например, с килограммами: обычная форма родительного падежа употребляется, если нет числительного, а в сочетании с числительным могут быть варианты: 16 килограммов (стилистически нейтральная обычная форма) и 16 килограмм (разговорная счетная форма).

Вот так происходит кодирование текста в компьютере. Кодируются не только буквы, но и цифры, знаки препинания, математические символы и т.д.

Существует множество кодировок. Вот две из них:

  • Американская кодировка ASCII (англ. American standard code for information interchange – Американский стандартный код для обмена информацией , 8 бит)
  • Советская кодировка КОИ-8 (код обмена информацией, 8 бит), Разработана для кодирования букв кириллических алфавитов. Нетрудно догадаться, что при использовании восьми бит можно закодировать 256 символов.

To be continued…

[1] Слово БИТ действительно только для двоичной системы.
[2] Ну или почти все…