Двоичное кодирование текстовой информации и таблица кодов ASCII

Минимальные единицы измерения информации – это бит и байт.

Один бит позволяет закодировать 2 значения (0 или 1).

Используя два бита, можно закодировать 4 значения: 00, 01, 10, 11.

Тремя битами кодируются 8 разных значений: 000, 001, 010, 011, 100, 101, 110, 111.

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

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

1 бит кодирует     —> 2 разных значения    (21 = 2),

2 бита кодируют —> 4 разных значения    (22 = 4),

3 бита кодируют —> 8 разных значений    (23 = 8),

4 бита кодируют —> 16 разных значений   (24 = 16),

5 бит кодируют   —> 32 разных значения   (25 = 32),

6 бит кодируют   —> 64 разных значения   (26 = 64),

7 бит кодируют   —> 128 разных значения (27 = 128),

8 бит кодируют    —> 256 разных значений (28 = 256),

9 бит кодируют   —> 512 разных значений  (29 = 512),

10 бит кодируют —> 1024 разных значений (210 = 1024).

Мы помним, что в одном байте не 9 и не 10 бит, а всего 8. Следовательно, с помощью одного байта можно закодировать 256 разных символов. Как Вы думаете, много это или мало? Давайте посмотрим на примере кодирования текстовой информации.

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

В русском языке 33 буквы и, значит, для их кодирования надо 33 байта. Компьютер различает большие (заглавные) и маленькие (строчные) буквы, только если они кодируются различными кодами. Значит, чтобы закодировать большие и маленькие буквы русского алфавита, потребуется 66 байт.

Для больших и маленьких букв английского алфавита потребуется ещё 52 байта. В итоге получается 66 + 52 = 118 байт. Сюда надо ещё добавить цифры (от 0 до 9), символ «пробел», все знаки препинания: точку, запятую, тире, восклицательный и вопросительный знаки, скобки: круглые, фигурные и квадратные, а также знаки математических операций: +, –, =, / (это деление), * (это умножение). Добавим также специальные символы: %, $, &, @, #, № и др. Все это вместе взятое как раз и составляет около 256 различных символов.

А дальше дело осталось за малым. Надо сделать так, чтобы все люди на Земле договорились между собой о том, какие именно коды (с 0 до 255, т.е. всего 256) присвоить символам. Допустим, все люди договорились, что код 33 означает восклицательный знак (!), а код 63 – вопросительный знак (?). И так же – для всех применяемых символов. Тогда это будет означать, что текст, набранный одним человеком на своем компьютере, всегда можно будет прочитать и распечатать другому человеку на другом компьютере.

Таблица ASCII

Такая всеобщая договоренность об одинаковом использовании чего-либо называется стандартом. В нашем случае стандарт должен представлять из себя таблицу, в которой зафиксировано соответствие кодов (с 0 до 255) и символов. Подобная таблица называется таблицей кодировки.

Но не всё так просто. Ведь символы, которые хороши, например, для Греции, не подойдут для Турции потому, что там используются другие буквы. Аналогично то, что хорошо для США, не подойдет для России, а то, что подойдет для России, не годится для Германии.

Поэтому приняли решение разделить таблицу кодов пополам.

Первые 128 кодов (с 0 до 127) должны быть стандартными и обязательными для всех стран и для всех компьютеров, это – международный стандарт.

А со второй половиной таблицы кодов (с 128 до 255) каждая страна может делать все, что угодно, и создавать в этой половине свой стандарт – национальный.

Первую (международную) половину таблицы кодов называют таблицей ASCII, которую создали в США и приняли во всем мире.

За вторую половину кодовой таблицы (с 128 до 255) стандарт ASCII не отвечает. Разные страны создают здесь свои национальные таблицы кодов.

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

Коды из международной таблицы ASCII

0-31 – Особые символы, которые не распечатываются на экране или на принтере. Они служат для выполнения специальных действий, например, для «перевода каретки» – перехода текста на новую строку, или для «табуляции» – установки курсора на специальные позиции в строке текста и т.п.

32 – Пробел, который является разделителем между словами. Это тоже символ, подлежащий кодировке, хоть он и отображается в виде «пустого места» между словами и символами.

33-47 – Специальные символы (круглые скобки и пр.) и знаки препинания (точка, запятая и пр.).

48-57 – Цифры от 0 до 9.

58-64 – Математические символы: плюс (+), минус (-), умножить (*), разделить (/) и пр., а также знаки препинания: двоеточие, точка с запятой и пр.

65-90 – Заглавные (прописные) английские буквы.

91-96 –  Специальные символы (квадратные скобки и пр.).

97-122 – Маленькие (строчные) английские буквы.

123-127 – Специальные символы (фигурные скобки и пр.).

За пределами таблицы ASCII, начиная с цифры 128 по 159, идут заглавные (прописные) русские буквы. А с цифры 160 по 170 и с 224 по 239 – маленькие (строчные) русские буквы.

Кодировка слова МИР

Пользуясь показанной кодировкой, мы можем представить себе, как компьютер кодирует и затем воспроизводит. Например, рассмотрим слово МИР (заглавными буквами). Это слово представляется тремя кодами:
букве М соответствует код 140 (по национальной российской системе кодировки),
для буквы И – это код 136 и
буква Р – это 144.

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

Десятичной цифре 140 соответствует двоичное число 10001100. Это можно проверить, если сделать следующие вычисления: 27 + 23 +22 = 140. Степень, в которую возводится каждая «двойка»  – это номер позиции двоичного числа 10001100, в которой стоит «1». Причем позиции нумеруются справа налево, начиная с нулевого номера  позиции: 0, 1, 2 и т.д.

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

Аналогичным образом можно убедиться, что цифре 136 соответствует двоичное число 10001000 (проверка: 27 + 23 = 136). А цифре 144 соответствует двоичное число 10010000 (проверка: 27 + 24 = 144).

Таким образом, в компьютере слово МИР будет храниться в виде следующей последовательности нулей и единиц (бит): 10001100  10001000  10010000.

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

Неужели нужно знать все коды?

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

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

Упражнения по компьютерной грамотности, позволяющие самостоятельно увидеть и почувствовать описанные системы кодировок, приведены в статье «Проверяем, кодирует ли компьютер текст?»

P.S. Статья закончилась, но можно еще прочитать:

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

Что такое переменная в программировании и чем она отличается от константы

Смотрим на кодировку цвета

Надежда Широбокова

View Comments

  • Надежда,ещё раз благодарю Вас за ваши бесценные уроки! Сейчас редко встретишь таких добрых,бескорыстных людей, как Вы! По вашему совету посмотрела курс К. Фёста, очень понравился, скачала в свой ноутбук. Но вот беда - не могу его открыть! Файл с расширением .pdf - запрашивается программа для его чтения. Пробовала через Интернет - не получилось! Помогите! Как открывать файлы с расширением .pdf? Заранее благодарю Вас за ответ!

  • спасибо Вспомнил далёкий 64 г когда к нам выпускникам пришла ровесница из универа знакомить с азами к и б е р н е т и к и В памяти остались слова 10 ричная и 2ичная Вы напомнили......и воспоминания.........

    • Виталий, неужели в 1964-ом уже знакомили с кибернетикой? Хотя если первые ЭВМ появились в 1940-ые годы, то вполне может быть.

  • Надежда, спасибо. Еще раз внимательно все перечитала и поняла. Наверное, тяжело объяснять все это далеким от математики людям. Мне пришлось все нарисовать на бумажке). Стало смешно. Я рассуждала, видимо, так. Раз 1 байт кодирует 256 различных значений, значит они все в нем одном и находятся. Байт один и тот же, а значения разные.)

    • Спасибо, Алина, за обратную связь! Рада, что Вы разобрались, тем более, что тема, действительно, не простая.

  • Надежда, спасибо. Эти цифры я взяла из начала статьи

    "5 бит кодируют --> 32 разных значения,

    6 бит кодируют --> 64 разных значения."

Recent Posts

Билеты на поезд РЖД передаются в Госуслуги

В Госуслугах появились три новых возможности для пассажира поезда: сведения о билете, архив и возврат…

4 дня ago

Как в Госуслугах изменить номер телефона, почту или пароль

Можно изменить номер телефона, почту или пароль в Госуслугах. Рассмотрим, как это можно сделать самостоятельно,…

1 неделя ago

Яндекс.Календарь: Как создать события и напоминание самому себе

Яндекс.Календарь полезен для напоминания самому себе о важных событиях, например,  чтобы не забыть о рабочих…

3 недели ago

Шрифты для русских букв: коллекция из 6700 шрифтов

Кириллические шрифты содержат русские буквы, то есть, содержат кириллицу. Есть  сайт, где собрана большая коллекция…

3 недели ago

Что означают цвета в календаре РЖД

При покупке билетов на сайте РЖД удобно пользоваться календарем, в котором даты выделены цветами. Всего…

4 недели ago

Билеты на нижние полки на поезд РЖД и несколько пассажиров

Раньше нельзя было приобрести несколько нижних полок в поезде РЖД (Российские железные дороги). Теперь можно…

1 месяц ago