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

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

Для этого давайте возьмём пример из жизни: Представьте что Вы забыли 3 цифры своего PIN кода, первую цифру Вы знаете, это, например, “4”, а остальные забыли.

Пин-код

У нас получается 1000 комбинаций, а если учесть что для перебора всех комбинаций мы будем тратить по 3 сек. времени, то общее время составит: 3*1000=3000/60=50 мин. Конечно, это время мы потратим только в том случае, когда будем последовательно проверять все комбинации, а “нужный” код будет проверен в конце.

В идеале, чтобы не запутаться, лучше коды вводить по правилам счёта: 000, 001, 002, 003, ……  999.

Если же мы используем двоичные числа, то количество комбинаций для трёх разрядного числа, будет составлять всего 8. Это последовательный ряд: 000, 001, 010, 011, 100, 101, 110, 111.

Бинарный код Это значит что каждому символу можно присвоить свой уникальный двоичный код.

Кодовые таблицы

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

Стандартная клавиатура состоит:Формула Хартли

  • латиница – 26*2=52 символа.
  • кириллица – 33*2=66 символов.
  • цифры – 0….9=10.
  • математические знаки – 20 знаков.
  • знаки препинания – 10 знаков.
  • специальные символы, включая пробел – 20 символов.

Подсчитаем сумму: 52+66+10+20+10+20=178 символов

По формуле Хартли, разрядность двоичного числа, а, следовательно и информационный вес 1 символа укладывается в диапазоне от 7 до 8 бит. 2 в степени

Первая в мире кодовая таблица символов появилась в 1963 году, её название: “ASCII – American Standart Code for Information Interchange“. Поначалу 1 символ занимал 7 бит информации, что давало в совокупности 128 кодов символов. Этого было достаточно для одноязычной клавиатуры, позднее понадобилось уже 8 бит.

Так 8 бит или 1 Байт – базовая стандартная величина, определяющая количество текстовой (символьной) информации.

Состав таблицы ASCII:

  1. Первые 32 кода (0….31) – непечатные (служебные) коды.
  2. Основная таблица (32…..127) – буквы, цифры, знаки препинания в английской раскладке.
  3. Расширенная таблица (128…..255) – буквы, знаки препинания в русской раскладке (Кириллица Win 1251, 1252 и т.д.).

Основная таблица ASCII

ASCII основная

Расширенная таблица ASCII

ASCII cirillic 

Таблицы кодов UNICODE:

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

Сейчас такой проблемы нет, поскольку были реализованы универсальные кодовые таблицы UNICODE (universal code). Разница состоит в том, что информационный вес 1 символа стал составлять 2 байта (16 бит). Это позволило разместить в одной таблице 65 536 символов. Такого количества уникальных кодов достаточно для того чтобы разместить в одной таблице несколько расширенных таблиц (греческий, арабский, кириллица и т.д.).

2 в 16 степени


Решение задач:

Задача 1. Определите информационный объём текста: “Что посеешь, то и пожнёшь!

Для решения такой задачи на необходимо посчитать количество символов, учитывая пробелы и знаки препинания. В этом тексте 26 символов, если нет дополнительной информации, то будем считать по умолчанию, что используется 8-битная (1-байтная) кодировка.

Поэтому в данном сообщении 26*8 = 208 бит.


 Задача 2. Автоматическое устройство осуществило перекодировку информационного сообщения на русском языке, первоначально записанного в Unicode, в кодировку КОИ-8. При этом информационное сообщение уменьшилось на на 480 бит. Какова длина сообщения?

Для решения такой задачи нам понадобится формула Хартли и формула для определения информационного объема текстового сообщения.

Формула Хартли

где, I – объём информационного сообщения;

К – количество символов в сообщении;

i – информационный вес 1 символа;

N – “мощность” (количество символов) алфавита.

Нам необходимо найти количество символов в сообщении. Для Unicode I = 16*K; когда его перекодировали в КОИ-8, его объём составил I = 8*K.

Длина сообщения (количество символов) не поменялось, поэтому можно составить уравнение: 16*K – 8*K = 480 бит.

Отсюда находим K = 480/8 = 60 символов.


Задача 3. Книга содержит 150 страниц. На каждой странице размещается 35 строк, в каждой строке – 50 символов. Текст записан в кодировке ASCII. Рассчитать объем информации, содержащейся в книге в КБ.

  1. Общее количество символов рассчитаем следующим образом: К = 150 стр. • 35 строк • 50 симв. = 262 500 символов
  2. Кодировка ASCII соответствует 8 битам или 1 Байту: i = 8 бит (1 Б)
  3. Находим объем информации книги по формуле: I = K • i ⇒ I = 262 500 Б = 262 500 / 1024 = 256,3 КБ.

 Задача 4. В таблице ниже представлен фрагмент кодовой таблицы ASCII:

Коды символов

Каков шестнадцатеричный код символа “q”?

  1. Практически во всех кодовых таблицах (ASCII не исключение) символы записываются в алфавитном порядке. Это относится и к цифрам и к буквам. В нашей таблице видно что заглавные латинские буквы от A до Z начинаются с десятичного кода 65-41_dec to hex
  2. Точно также строчные латинские буквы расставлены по алфавиту, начиная с символа с кодом97-61_dec to hex
  3. Отсюда следует, что разница кодов букв “q” и “a” равна разнице кодов букв “Q” и “A”, т.е. 81 – 65 = 16
  4. Тогда десятичный код буквы “q” будет равен коду буквы “a” + 16, т.е. 97 + 16 = 113
  5. Осталось осуществить перевод из десятичной системы счисления в шестнадцатеричную, для этого воспользуемся алгоритмом перевода:

113_dec to hexОтвет: Шестнадцатеричный код символа “q” –71_hex


 Задачи для самостоятельного решения:

  1. Считая, что каждый символ кодируется 1 Байтом, определите, чему равен информационный объем в битах следующего высказывания Рене Декарта:

Я мыслю, следовательно, существую.

  1. Считая, что каждый символ кодируется Unicode, определите, чему равен информационный объем в битах следующей фразы:

В шести литрах 6000 миллилитров.

  1. Автоматическое устройство осуществило перекодировку информационного сообщения на русском языке, первоначально записанного в 8-битном коде в 16-битную кодировку Unicode. При этом информационное сообщение увеличилось на 2048 Б. Каков был информационный объем сообщения до перекодировки?
  2. В таблице представлена часть кодовой таблицы ASCII:Каков шестнадцатеричный код символа «R»?
  3. Объем сообщения равен 11 КБ. Сообщение содержит 11 264 символа Какова максимальная мощность алфавита, использованного при передаче сообщения?
  4. Для передачи по каналу связи сообщения, состоящего только из символов А, Б, В и Г используется посимвольное кодирование: А-00, Б-11, В-010, Г-011. Через канал связи передается сообщение: БААВВГ. Закодируйте сообщение данным кодом, полученную последовательность переведите в шестнадцатеричный вид.
  5. Скорость передачи информации через канал связи равна 256 000 бит/с. Через данное соединение передают файл размером 3,8 МБ. Определите время передачи файла в сек.