Что такое кодовая таблица компьютера
Иллюстрированный самоучитель по цифровой графике
Кодовая таблица
Если строго определены элементы алфавита и разрядность слов, получаемых с их помощью, то количество всех кодов можно вычислить, а следовательно, составить их перечень в форме кодовой таблицы.
Таким образом, в кодовой таблице представлено определенное количество строк и только два столбца:
Определение
Кодовая таблица – это совокупность цифровых (двоичных) кодов и их значений.
Стоит обратить внимание на то, что до сих пор мы оперировали цифрами и числами, получаемыми из этих цифр при помощи позиционной системы записи. Теперь оказалось, что на самом деле это – только половина кодовой таблицы. О второй половине кодовой таблицы поговорим ниже.
Информацию о значениях кодовой таблицы см. в разд. » Значения кодовой таблицы» данной главы.
А пока поговорим о построении кодовой таблицы.
Первая проблема, которую нам предстоит решить, заключается в том, чтобы определить количество строк, т. е. мы сначала должны задаться количеством разрядов, как это выяснилось в предыдущем разделе. Но возникает следующий вопрос: а чем это определяется, какой необходимостью?
Прежде всего, мы должны располагать предварительной информацией о количестве значений, которое нам предстоит кодировать. Если мы собрались кодировать только два значения, например «да» и «нет» или «черное» и «белое» (кстати, вполне реальная задача), т. е. такую информацию, которая состоит из двух сообщений, то потребуется всего один разряд (один бит), а соответствующая кодовая таблица (табл. 5.4) будет состоять из двух строк.
Таблица 5.4. Кодовая таблица для двух значений.
Двоичные коды | Значения кодов |
---|---|
0 | «Да!» |
1 | «Нет!» |
Простота этой таблицы определяется тем, что в ней используются только элементы кодового алфавита. Если значений, которые надо кодировать, оказывается больше, чем два, то в этом случае элементы алфавита составляются в «слова», длина которых определяется разрядностью.
Например, если для кодирования требуется добавить значение, которое обычно присутствует в анкетах «Не знаю!», то одного разряда окажется недостаточно. Мы уже эту ситуацию обсуждали и знаем, что необходимо задействовать два разряда (табл. 5.5).
Информацию о расчете количества кодов см. в разд. «Расчет количества кодов » данной главы.
Таблица 5.5. Кодовая таблица для трех значений.
Двоичные коды | Значения кодов |
---|---|
00 | «Да!» |
01 | «Нет!» |
10 | «Не знаю!» |
11 | не используется |
Пример-метафора
Можно представить двоичные разряды в виде ячеек, входящих в состав слова-«ящика». Эти ячейки не могут быть пустыми, они должны получить какое-то значение, в данном случае «0» или «1».
Код «11» обязательно присутствует в таблице, хотя и не используется в данном случае, но, кто знает, может быть, этому коду в другой ситуации найдется достойное применение.
Пример
Если потребуется эту таблицу продолжить, например вместо трех значений (потенциально четырех) необходимо будет шесть значений, то сделать это можно, только увеличив количество разрядов, поскольку при данном количестве разрядов (два разряда) кодовая таблица не позволяет добавлять новые значения. Но сколько разрядов необходимо добавить? Это легко сосчитать: если два разряда мало, то положим три. Три разряда обеспечивают длину таблицы в восемь строк, т. е. больше, чем требуется. Строим новую таблицу: первое значение в ней будет «000», последнее – «111».
Важная мысль
Длина кодовой таблицы может быть произвольной, т. к. она определяется объемом информации, которая требует кодирования, но может быть ограничена возможностями технической реализации.
Расчет длины кодовой таблицы составляет практически половину всей процедуры ее построения. Теперь большее внимание следует обратить на вторую часть кодовой таблицы, которая определяет значения каждого кода.
Замечание
Однако следует отметить, что пользователям, которые применяют готовые технологии (программные приложения, общепринятые форматы и режимы), такими расчетами заниматься не приходится, поскольку давно разработаны стандартные кодовые таблицы. Вместе с тем, их ограничения, как правило, вызывают неприятие у лиц, которые не знакомы с особенностями логики, лежащей в основе компьютерных технологий. Например, художнику может быть совершенно непонятно, почему в компьютерных технологиях принято 256 градаций тона, а, например, не 7 или 100.
Дополнительную информацию о форматах файлов см. в части III.
Что такое кодовая таблица компьютера
Тексты вводятся в память компьютера с помощью клавиатуры. На клавишах написаны привычные нам буквы, цифры, знаки препинания и другие символы. В оперативную память они попадают в двоичном коде. Это значит, что каждый символ представляется 8-разрядным двоичным кодом.
Теперь возникает вопрос, какой именно восьмиразрядный двоичный код поставить в соответствие каждому символу.
Понятно, что это дело условное, можно придумать множество способов кодировки.
Все символы компьютерного алфавита пронумерованы от 0 до 255. Каждому номеру соответствует восьмиразрядный двоичный код от 00000000 до 11111111. Этот код просто порядковый номер символа в двоичной системе счисления.
Таблица, в которой всем символам компьютерного алфавита поставлены в соответствие порядковые номера, называется таблицей кодировки.
Для разных типов ЭВМ используются различные таблицы кодировки.
Международным стандартом для ПК стала таблица ASCII (читается аски) (Американский стандартный код для информационного обмена).
Таблица кодов ASCII делится на две части.
Международным стандартом является лишь первая половина таблицы, т.е. символы с номерами от 0(00000000), до 127 (01111111).
Структура таблицы кодировки ASCII
Порядковый номер
Символ
Символы с номерами от 0 до 31 принято называть управляющими.
Их функция – управление процессом вывода текста на экран или печать, подача звукового сигнала, разметка текста и т.п.
Альтернативная часть таблицы (русская).
Вторая половина кодовой таблицы ASCII, называемая кодовой страницей (128 кодов, начиная с 10000000 и кончая 11111111), может иметь различные варианты, каждый вариант имеет свой номер.
Кодовая страница в первую очередь используется для размещения национальных алфавитов, отличных от латинского. В русских национальных кодировках в этой части таблицы размещаются символы русского алфавита.
Первая половина таблицы кодов ASCII
Обращаю ваше внимание на то, что в таблице кодировки буквы (прописные и строчные) располагаются в алфавитном порядке, а цифры упорядочены по возрастанию значений. Такое соблюдение лексикографического порядка в расположении символов называется принципом последовательного кодирования алфавита.
Для букв русского алфавита также соблюдается принцип последовательного кодирования.
Вторая половина таблицы кодов ASCII
К сожалению, в настоящее время существуют пять различных кодировок кириллицы (КОИ8-Р, Windows. MS-DOS, Macintosh и ISO). Из-за этого часто возникают проблемы с переносом русского текста с одного компьютера на другой, из одной программной системы в другую.
Хронологически одним из первых стандартов кодирования русских букв на компьютерах был КОИ8 («Код обмена информацией, 8-битный»). Эта кодировка применялась еще в 70-ые годы на компьютерах серии ЕС ЭВМ, а с середины 80-х стала использоваться в первых русифицированных версиях операционной системы UNIX.
От начала 90-х годов, времени господства операционной системы MS DOS, остается кодировка CP866 («CP» означает «Code Page», «кодовая страница»).
Компьютеры фирмы Apple, работающие под управлением операционной системы Mac OS, используют свою собственную кодировку Mac.
Кроме того, Международная организация по стандартизации (International Standards Organization, ISO) утвердила в качестве стандарта для русского языка еще одну кодировку под названием ISO 8859-5.
Наиболее распространенной в настоящее время является кодировка Microsoft Windows, обозначаемая сокращением CP1251.
С конца 90-х годов проблема стандартизации символьного кодирования решается введением нового международного стандарта, который называется Unicode. Это 16-разрядная кодировка, т.е. в ней на каждый символ отводится 2 байта памяти. Конечно, при этом объем занимаемой памяти увеличивается в 2 раза. Но зато такая кодовая таблица допускает включение до 65536 символов. Полная спецификация стандарта Unicode включает в себя все существующие, вымершие и искусственно созданные алфавиты мира, а также множество математических, музыкальных, химических и прочих символов.
Что такое кодовая таблица компьютера
Кодирование текстовой информации
Двоичное кодирование – один из распространенных способов представления информации. В вычислительных машинах, в роботах и станках с числовым программным управлением, как правило, вся информация, с которой имеет дело устройство, кодируется в виде слов двоичного алфавита.
Начиная с конца 60-х годов, компьютеры все больше стали использоваться для обработки текстовой информации, и в настоящее время основная доля персональных компьютеров в мире (и большая часть времени) занята обработкой именно текстовой информации. Все эти виды информации в компьютере представлены в двоичном коде, т. е. используется алфавит мощностью два (всего два символа 0 и 1). Связано это с тем, что удобно представлять информацию в виде последовательности электрических импульсов: импульс отсутствует (0), импульс есть (1).
С точки зрения ЭВМ текст состоит из отдельных символов. К числу символов принадлежат не только буквы (заглавные или строчные, латинские или русские), но и цифры, знаки препинания, спецсимволы типа «=», «(«, «&» и т.п. и даже (обратите особое внимание!) пробелы между словами.
Тексты вводятся в память компьютера с помощью клавиатуры. На клавишах написаны привычные нам буквы, цифры, знаки препинания и другие символы. В оперативную память они попадают в двоичном коде. Это значит, что каждый символ представляется 8-разрядным двоичным кодом.
В процессе вывода символа на экран компьютера производится обратный процесс — декодирование, то есть преобразование кода символа в его изображение. Важно, что присвоение символу конкретного кода — это вопрос соглашения, которое фиксируется в кодовой таблице.
Теперь возникает вопрос, какой именно восьмиразрядный двоичный код поставить в соответствие каждому символу. Понятно, что это дело условное, можно придумать множество способов кодировки.
Все символы компьютерного алфавита пронумерованы от 0 до 255. Каждому номеру соответствует восьмиразрядный двоичный код от 00000000 до 11111111. Этот код просто порядковый номер символа в двоичной системе счисления.
Виды таблиц кодировок
Таблица, в которой всем символам компьютерного алфавита поставлены в соответствие порядковые номера, называется таблицей кодировки.
Для разных типов ЭВМ используются различные таблицы кодировки.
Таблица кодов ASCII делится на две части.
Международным стандартом является лишь первая половина таблицы, т.е. символы с номерами от 0 (00000000), до 127 (01111111).
Структура таблицы кодировки ASCII
Символы с номерами от 0 до 31 принято называть управляющими.
Их функция – управление процессом вывода текста на экран или печать, подача звукового сигнала, разметка текста и т.п.
Стандартная часть таблицы (английский). Сюда входят строчные и прописные буквы латинского алфавита, десятичные цифры, знаки препинания, всевозможные скобки, коммерческие и другие символы.
Все остальные отражаются определенными знаками.
Альтернативная часть таблицы (русская).
Вторая половина кодовой таблицы ASCII, называемая кодовой страницей (128 кодов, начиная с 10000000 и кончая 11111111), может иметь различные варианты, каждый вариант имеет свой номер.
Кодовая страница в первую очередь используется для размещения национальных алфавитов, отличных от латинского. В русских национальных кодировках в этой части таблицы размещаются символы русского алфавита.
Обращается внимание на то, что в таблице кодировки буквы (прописные и строчные) располагаются в алфавитном порядке, а цифры упорядочены по возрастанию значений. Такое соблюдение лексикографического порядка в расположении символов называется принципом последовательного кодирования алфавита.
Для букв русского алфавита также соблюдается принцип последовательного кодирования.
К сожалению, в настоящее время существуют пять различных кодировок кириллицы (КОИ8-Р, Windows. MS-DOS, Macintosh и ISO). Из-за этого часто возникают проблемы с переносом русского текста с одного компьютера на другой, из одной программной системы в другую.
Хронологически одним из первых стандартов кодирования русских букв на компьютерах был КОИ8 («Код обмена информацией, 8-битный»). Эта кодировка применялась еще в 70-е годы на компьютерах серии ЕС ЭВМ, а с середины 80-х стала использоваться в первых русифицированных версиях операционной системы UNIX.
От начала 90-х годов, времени господства операционной системы MS DOS, остается кодировка CP866 («CP» означает «Code Page», «кодовая страница»).
Компьютеры фирмы Apple, работающие под управлением операционной системы Mac OS, используют свою собственную кодировку Mac.
Кроме того, Международная организация по стандартизации (International Standards Organization, ISO) утвердила в качестве стандарта для русского языка еще одну кодировку под названием ISO 8859-5.
Наиболее распространенной в настоящее время является кодировка Microsoft Windows, обозначаемая сокращением CP1251. Введена компанией Microsoft; с учетом широкого распространения операционных систем (ОС) и других программных продуктов этой компании в Российской Федерации она нашла широкое распространение.
С конца 90-х годов проблема стандартизации символьного кодирования решается введением нового международного стандарта, который называется Unicode.
Это 16-разрядная кодировка, т.е. в ней на каждый символ отводится 2 байта памяти. Конечно, при этом объем занимаемой памяти увеличивается в 2 раза. Но зато такая кодовая таблица допускает включение до 65536 символов. Полная спецификация стандарта Unicode включает в себя все существующие, вымершие и искусственно созданные алфавиты мира, а также множество математических, музыкальных, химических и прочих символов.
Внутреннее представление слов в памяти компьютера
с помощью таблицы ASCII
Таким образом, каждая кодировка задается своей собственной кодовой таблицей. Как видно из таблицы, одному и тому же двоичному коду в различных кодировках поставлены в соответствие различные символы.
Н апример, последовательность числовых кодов 221, 194, 204 в кодировке СР1251 образует слово «ЭВМ» (Рис. 10), тогда как в других кодировках это будет бессмысленный набор символов.
К счастью, в большинстве случаев пользователь не должен заботиться о перекодировках текстовых документов, так как это делают специальные программы-конверторы, встроенные в приложения.
Запись символов в кодовых таблицах (информатика, 7 класс)
Память компьютера устроена таким образом, что символы и числа могут храниться в ней исключительно как определённые последовательности бит. И чтобы корректно отображать и передавать информацию о конкретной цифре или букве, были разработаны специальные кодовые таблицы. На информатике в 7 классе изучают уникальную последовательность из нулей и единиц, готовую к обработке вычислительными машинами. В таблицах каждой из них соответствует определённый графический символ.
Основные кодировки
В начале эры компьютеров на шифровку одного символа отводилось пять бит информации. Причиной этому был сильно ограниченный объём оперативной памяти вычислительных машин тех лет. Зашифровывалось всего 32 элемента, представляющие собой строчные буквы латиницы и символы управления.
Рост производительности так называемого железа привёл к появлению кодировочных таблиц, включающих в себя гораздо большее количество элементов. Так, первой кодировкой, где использовалось уже 7 бит для шифрования одного символа, стала ASCII7. Она включала в себя прописные буквы английского алфавита, цифры в арабском представлении и знаки препинания.
Вскоре появилась расширенная версия ASCII8 — с возможностью использования 256 закодированных двоичным кодом символов, причём вторая половина из 128 ячеек отводилась для национальных алфавитов.
Но для многих языков даже расширенная ASCII8 была недостаточна, поэтому для удовлетворения требований кодировок японского, арабского и других национальных языков, где необходимо большее количество структурных элементов, чем 256, была создана система UNICODE.
Win1251, ср866 используются для отображения кириллицы. Стоит также отметить отдельное развитие целой группы кодировок КОI для отображения кириллических шрифтов.
Краткая история кода ASCII
Американский стандартный код для обмена информацией, или код ASCII, был создан в 1963 году Комитетом Американской ассоциации стандартов. Этот код возник в результате изменения порядка и расширения набора символов и символов, которые уже использовались в телеграфии в то время компанией Bell.
Сначала включались только заглавные буквы и цифры, но в 1967 году были добавлены строчные буквы и некоторые управляющие символы, образующие так называемый US-ASCII, то есть символы от 0 до 127. Таким образом, этот набор, состоящий всего из 128 символов, был опубликован в 1967 году как стандарт, содержащий всё необходимое для написания текстов на английском языке.
В 1981 году IBM разработала расширение 8-битного символьного кода ASCII, названное «кодовая страница 437». этой версии были заменены некоторые устаревшие управляющие символы для графических элементов. Кроме того, было добавлено 128 символов с новыми знаками, графикой и латинскими буквами, всеми знаками препинания и символами, необходимыми для написания текстов на других языках. Таким образом, были добавлены символы ASCII в диапазоне от 128 до 255.
IBM включает поддержку этой кодовой страницы в аппаратное обеспечение своей модели 5150, известной как IBM-PC, которая считается первым персональным компьютером. Операционная система этой модели MS-DOS также использовала расширенный числовой код ASCII. И сегодня почти все компьютерные системы применяют код ASCII для представления символов и текстов.
Русские версии — группа КОI
Группа KOI8, наряду с cp866, win1251, долгое время была наиболее распространённой в традиционном русском и украинском интернете. Аббревиатура KOI расшифровывается в русском языке как «Код обмена информацией». По историческим причинам: она могла существовать благодаря использованию в первых локализациях систем Unix. Текущая группа состоит как минимум из:
Группа KOI делится на основные кодировки — KOI8 и KOI7 (теперь историческую). Кодировки KOI7 предназначены и использовались в RSX-11, RT-11 и аналогичных системах. Все кодировки KOI8 имеют идентичное содержимое кодов 0x00−0x 7 °F (так же как в US-ASCII) и 0xC0−0xFF (32 русских буквы, то есть полный алфавит без Io / IO в обоих случаях).
Порядок русских букв не столько является алфавитным, сколько связан с порядком букв латинского алфавита с таким же произношением. Несвязанные буквы связаны практически произвольным образом (Ю (Yu) — @, Я (Ya) — Q, Э (E) — \). Кроме того, большие буквы ставятся после маленьких; это проблема совместимости с кодировками KOI7.
KOI8-RU был изобретён как частная инновация Юрия Демченко из Киевского политехнического института для обеспечения кодирования, совместимого с KOI8-R, с буквами славянского алфавита exUSSR кириллицы (украинский, белорусский), позиции заимствованы из ISO-IR-111. В 1997 году в Microsoft Outlook Express была добавлена поддержка этой кодировки. Эта кодировка не была поддержана украинским интернет-сообществом из-за наличия некодифицированного, но использованного KOI8-U; последний был выдвинут вместо IETF.
Не зарегистрирован в IANA, но также поддерживается GNU iconv. Microsoft определила CP21866 как KOI8-U, но долгое время это действительно был KOI8-RU. На практике разница между ними слишком мала, чтобы их можно было легко смешивать.
Известен также KOI8-C как редко встречающаяся смесь KOI8 в 0xC0−0xFF и CP1251 в 0x80−0xBF. Есть еще KOI8-C, в котором добавлены буквы для старого (до 1918 года) русского алфавита, а также для большинства славянских алфавитов, основанных на кириллице.
KOI8-RUB — ещё одно изобретение для поддержки украинских и белорусских букв, непопулярное сейчас. Этот список можно продолжать. Следующие кодировки: KOI8-K1, KOI8-L2, KOI8-CS2 не являются кириллицей; они были созданы для чешского и словацкого языков. Общее название KOI8 было использовано в этом случае из-за традиций лагеря социализма.
Универсальная шифровка
Стандарт Unicode предоставляет уникальный номер для каждого символа, независимо от платформы, вида техники, приложения или языка. Он был принят всеми современными поставщиками программного обеспечения и теперь позволяет передавать данные через множество различных платформ, устройств и приложений без повреждения.
Поддержка Unicode формирует основу для представления языков и символов во всех основных операционных системах, поисковых системах, браузерах, ноутбуках и смартфонах, а также в интернете:
Использование Unicode — лучший способ реализации ISO / IEC 10646. Появление стандарта Unicode и доступность инструментов для его поддержки являются одними из наиболее значительных международных тенденций в области программных технологий.
Кодирование символов специального языка было окончательно решено благодаря введению кодировки символов Unicode (юникод). Система кодирования способна шифровать все специальные символы, какие используются для корректной работы, и при этом соблюдается правильность кодируемого языка. Решение основано на том факте, что символ больше не сохраняется в 1 байт (только 256 возможных вариантов), но он сохраняется в 2 байта (т. е. 65536 возможных вариантов). Эта система считается брендом UTF16.
Основное преимущество UTF-16 — очень простое управление всеми возможными символами, а недостаток — несовместимость двойного размера и таблицы ASCII. Проблема несовместимости является значительной при сохранении текстовых файлов. Поэтому была создана альтернативная система кодирования Unicode, которая работает с переменной длиной сохраняемого символа. Символы таблицы ASCII сохраняются в 1 байте, а не-ASCII символы сохраняются в 2 или более байтах. Эта система кодирования приписывается бренду UTF-8, который в основном используется для текстовых (XML, HTM) файлов.
При работе с такими текстами символы преобразуются в UTF-16 уже в оперативной памяти компьютера, что ускоряет его работу. Кодирование символов UTF-16 и UTF-8 используется системой PROMOTIC начиная с версии Pm7.1.0, поэтому можно создавать многоязычные приложения без необходимости смены кодовой страницы символов или использования специальных версий ОС Windows.
Современные международные десятичные кодировочные таблицы позволяют представлять практически любой язык в виде машинного кода. А использование того или иного способа шифрования зависит от условий конкретной задачи и технических возможностей компьютерных устройств.