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

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

Таким образом, в кодовой таблице представлено определенное количество строк и только два столбца:

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

Определение

Кодовая таблица - это совокупность цифровых (двоичных) кодов и их значений.

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

Информацию о значениях кодовой таблицы см. в разд. " Значения кодовой таблицы" данной главы.

А пока поговорим о построении кодовой таблицы.

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

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

Таблица 5.4 . Кодовая таблица для двух значений.

Двоичные коды Значения кодов
0 "Да!"
1 "Нет!"

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

Например, если для кодирования требуется добавить значение, которое обычно присутствует в анкетах "Не знаю!", то одного разряда окажется недостаточно. Мы уже эту ситуацию обсуждали и знаем, что необходимо задействовать два разряда (табл. 5.5).

Информацию о расчете количества кодов см. в разд. "Расчет количества кодов " данной главы.

Таблица 5.5 . Кодовая таблица для трех значений.

Пример-метафора

Можно представить двоичные разряды в виде ячеек, входящих в состав слова-"ящика". Эти ячейки не могут быть пустыми, они должны получить какое-то значение, в данном случае "0" или "1".

Код "11" обязательно присутствует в таблице, хотя и не используется в данном случае, но, кто знает, может быть, этому коду в другой ситуации найдется достойное применение.

Пример

Если потребуется эту таблицу продолжить, например вместо трех значений (потенциально четырех) необходимо будет шесть значений, то сделать это можно, только увеличив количество разрядов, поскольку при данном количестве разрядов (два разряда) кодовая таблица не позволяет добавлять новые значения. Но сколько разрядов необходимо добавить? Это легко сосчитать: если два разряда мало, то положим три. Три разряда обеспечивают длину таблицы в восемь строк, т. е. больше, чем требуется. Строим новую таблицу: первое значение в ней будет "000", последнее - "111".

Важная мысль

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

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

Замечание
Однако следует отметить, что пользователям, которые применяют готовые технологии (программные приложения, общепринятые форматы и режимы), такими расчетами заниматься не приходится, поскольку давно разработаны стандартные кодовые таблицы. Вместе с тем, их ограничения, как правило, вызывают неприятие у лиц, которые не знакомы с особенностями логики, лежащей в основе компьютерных технологий. Например, художнику может быть совершенно непонятно, почему в компьютерных технологиях принято 256 градаций тона, а, например, не 7 или 100
.

Дополнительную информацию о форматах файлов см. в части III.

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

Кодовая таблица - это внутреннее представление символов в компьютере.

В качестве стандарта долгое время использовалась таблица \(ASCII \)(\(A\)merican \(S\)tandard \(C\)ode for \(I\)nformational \(I\)nterchange - Американский стандартный код информационного обмена ).

Для хранения двоичного кода одного символа выделен \(1\) байт \(=\) \(8 \)бит. Учитывая, что каждый бит принимает значение \(1\) или \(0\), количество возможных сочетаний единиц и нулей равно 2 8 = 256 .

Значит, с помощью \(1\) байта можно получить \(256\) разных двоичных кодовых комбинаций и отобразить с их помощью \(256\) различных символов.

Эти коды и составляют таблицу \(ASCII\).

Для сокращения записи и удобства пользования этими кодами символов в таблице используют шестнадцатеричную систему счисления, состоящую из \(16\) символов - \(10\) цифр и \(6\) латинских букв: \(A\), \(B\), \(C\), \(D\), \(E\), \(F\). При кодировании символов сначала записывается цифра столбца, а затем строки, на пересечении которых находится данный символ.

ASCII -коды

Например, латинская буква \(S\) в таблице \(ASCII\) представлена шестнадцатеричным кодом - \(53\). При нажатии клавиши с буквой \(S\) в память компьютера записывается код \(01010011\), представляющий собой двоичный эквивалент шестнадцатеричного числа \(53\). Этот код может быть получен путем замены каждой шестнадцатеричной цифры её двоичным представлением. В данном случае цифра \(5\) заменена кодом \(0101\), а цифра 3 - кодом \(0011\). При выводе буквы \(S\) на экран, компьютер выполняет декодирование: на основании этого двоичного кода строится изображение символа.

Обрати внимание!

Любой символ в таблице \(ASCII\) кодируется с помощью \(8\) двоичных разрядов или \(2\) шестнадцатеричных разрядов.

Стандарт \(ASCII\) кодирует первые \(128 \)символов от \(0\) до \(127\): цифры, буквы латинского алфавита, управляющие символы. Таблица выше отображает кодировку символов в шестнадцатеричной системе счисления.

Первые \(32\) символа являются управляющими и предназначены в основном для передачи команд управления. Их назначение может варьироваться в зависимости от программных и аппаратных средств. Вторая половина кодовой таблицы (от \(128\) до \(255\)) американским стандартом не определена и предназначена для символов национальных алфавитов, псевдографических и некоторых математических символов. В разных странах могут использоваться различные варианты второй половины кодовой таблицы.

Для сравнения рассмотрим число \(45\) для двух вариантов кодирования.

При использовании в тексте это число потребует для своего представления \(2\) байта, поскольку каждая цифра будет представлена своим кодом в соответствии с таблицей \(ASCII\). В шестнадцатеричной системе код будет выглядеть как \(3435\), в двоичной системе - \(00110100 00110101\).

При использовании в вычислениях код этого числа будет получен по специальным правилам перевода и представлен в виде \(8\)-разрядного двоичного числа \(00101101\), на что потребуется \(1\) байт.

В настоящее время широко распространен код \(Unicode\) . Эта кодировка поддерживается в большинстве операционных систем, во всех современных браузерах и многих программах.

Стандарт \(Unicode\) явился результатом сотрудничества Международной организации по стандартизации (\(ISO\)) с ведущими производителями компьютеров и программного обеспечения. В мире существует \(6700\) живых языков, но только \(50\) из них являются официальными языками государств. Письменностей используется около \(25\), что делает возможным создание универсального стандарта.

Для кодирования этих письменностей достаточно \(16\)-битового диапазона (\(2\) байта на символ), то есть диапазона от \(0000\) до \(FFFF\). Стандарт \(ASCII\) занимает в кодовом пространстве свое почетное место в диапазоне от \(0000\) до \(00FF\).

Каждой письменности выделен свой блок кодов. На сегодняшний день кодирование всех живых официальных письменностей считается завершенным: распределено около \(29000\) позиций из \(65535\) возможных.

Кодовая таблица Unicode

В последнее время консорциум \(Unicode\) приступил к кодированию остальных письменностей нашей планеты, которые представляют какой-либо интерес: письменности мёртвых языков, выпавших из современного обихода, китайские иероглифы, искусственно созданные алфавиты и т. п.

Для представления такого разнообразия языков \(16\)-битового кодирования уже недостаточно, и сегодня \(Unicode\) уже приступил к освоению \(21\)-битового пространства кодов (\(000000\)-\(10FFFF\)), которое разбито на \(16\) зон, названных плоскостями.

В конце 90-ых годов появился новый международный стандарт Unicode, который отводит под один символ не один байт, а два, и поэтому с его помощью можно закодировать не 256, а 65536 различных символов. Полная спецификация стандарта Unicode включает в себя все существующие, вымершие и искусственно созданные алфавиты мира, а также множество математических, музыкальных, химических и прочих символов.

Последовательности десятичных кодов слова «ЭВМ» в различных кодировках на основе кодировочных таблиц:

КОИ8-Р 252 247 237
CP1251 221 194 204
CP866 157 130 140
Mac 157 130 140
ISO 205 178 188

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

2. Коды символов можно найти и с помощью MS Word. (Вставка - Символ... ) . Найти несколько числовых кодов и сравнить их значение со значением в таблице кодов CP1251.


3. Открываю Блокнот и таблицы кодов CP866 и CP1251. Учащиеся называют любое короткое слово и это слово набирается в Блокноте с помощью кодов CP866 и CP1251 при нажатой клавише Alt в одной, затем в другой кодировке. Коды называют учащиеся, отыскивая их в таблице кодов (в кодировке CP866 набирается код, в кодировке CP1251 набирается перед кодом ноль, например, код "Ж" - 198. При нажатой клавише Alt набираем 0198). Буквы всегда можно ввести и без кодов, но если в текстовом редакторе типа Блокнот нужно получить таблицу, то без кодов не обойтись. Элементы таблицы имеются в кодовой таблице.CP866. Показываю пример. Но здесь важно выбрать шрифт. Он указан ниже таблицы.

4. Открываю любую Web-страницу или сайт на русском языке, например, сайт школы. Меняю кодировки, сравниваем вид страницы.

IV. Закрепление

Перед началом выполнения заданий на компьютере вспомним, каким должно быть расстояние от экрана монитора до глаз. (60-70 см.). Как избежать вредного влияния от монитора? (Экран монитора должен быть чистым. Нельзя прикасаться к нему пальцами)

Вопросы и задания:

1. Во сколько раз уменьшится информационный объем страницы текста при его преобразовании из кодировки Unicode (таблица кодировки содержит 65536 символов) в кодировку Windows CP1251(таблица кодировки содержит 256 символов)? (В 2 раза)

2. Каков информационный объем текста, содержащего слово ИНФОРМАТИКА, в 8-ми битной кодировке? в 16-битной кодировке? (11 байтов, 22 байта)

3. Декодируйте следующие тексты, заданные десятичным кодом:
а) 087 111 114 100; (Word)
б) 068 079 083; (DOS)
в) 080 097 105 110 116 098 114 117 115 104. (Paintbrush)

4. Как будет выглядеть слово «диск», записанное в кодировке CP1251, в других кодировках?
(КОИ8-Р : ДХЯЙ ; CP866 : фшёъ ; Mac : диск ; ISO: фшёъ )

5. В текстовом режиме экран обычно разбивается на 25 строк по 80 символов в строке. Определите объем текстовой информации, занимающей весь экран монитора. (25 х 80 = 2000 байт)

Тексты заданий имеются на каждом компьютере ученика в файле "Кодирование. Задания.doc"

Дополнительно. Создать любую таблицу в Блокноте. Шрифт Lucida Console.

V. Подведение итогов урока .

Top