Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UchebnoePosobieInformatika2012_-_RC4.docx
Скачиваний:
105
Добавлен:
26.05.2015
Размер:
2.75 Mб
Скачать

Представление символьной информации в эвм

В отличие от обычной словесной формы, принятой в письменном виде, символьная информация хранится и обрабатывается в памяти ЭВМ в форме цифрового кода. Например, можно обозначить каждую букву числами, соответствующими ее порядковому номеру в алфавите: А - 01, Б - 02, В - 03, Г - 04, ... , Э - 30, Ю - 31, Я - 32. Точно так же можно договориться обозначать точку числом 33, запятую - 34 и т.д. Так как в устройствах автоматической обработки информации используются двоичные коды, то обозначения букв надо перевести в двоичную систему. Тогда буквы будут обозначаться следующим образом: А - 000001, Б - 000010, В - 000011, Г - 000100, ... , Э - 011110, Ю - 011111, Я - 100000. При таком кодировании любое слово можно представить в виде последовательности кодовых групп, составленных из 0 и 1. Например, слово ЭВМ выглядит так: 011110000011001110.

При преобразовании символов (знаков) в цифровой код между множествами символов и кодов должно иметь место взаимно-однозначное соответствие, т.е. разным символам должны быть назначены разные цифровые коды, и наоборот. Это условие является единственным необходимым требованием при построении схемы преобразования символов в числа. Однако существует ряд практических соглашений, принимаемых при построении схемы преобразования исходя из соображений наглядности, эффективности, стандартизации. Например, какое бы число ни назначили коду для знака 0 (не следует путать с числом 0), знаку 1 удобно назначить число, на единицу большее, чем код 0, и т.д. до знака 9. Аналогичная ситуация возникает и при кодировке букв алфавита: код для Б на единицу больше кода для А, а код для В на единицу больше кода для Б и т. д. Таким образом, из соображений наглядности и легкости запоминания целесообразно множества символов, упорядоченных по какому-либо признаку (например, лексико-графическому), кодировать также с помощью упорядоченной последовательности чисел.

Другим важным моментом при организации кодировки символьной информации является эффективное использование оперативной памяти ЭВМ. Так как общеупотребительными являются примерно 100 знаков (сюда помимо цифр, букв русского и английского алфавитов, знаков препинания, арифметических знаков входят знаки перевода строки, возврата каретки, возврата на шаг и т.п.), то для взаимно-однозначного преобразования всех знаков в коды достаточно примерно сотни чисел. Значение этого выбора заключается в том, что для размещения числа из этого диапазона в оперативной памяти достаточно одного байта, а не машинного слова. Следовательно, при такой организации кодировки достигается существенная экономия объема памяти.

При назначении кодов знакам надо также учитывать соглашения, касающиеся стандартизации кодировки. Можно назначить знаковые коды по своему выбору, но тогда возникнут трудности, связанные с необходимостью обмена информацией с другими организациями, использующими кодировку, отличную от нашей. В настоящее время существует несколько широко распространенных схем кодирования. Например, код BCD (Binary-Coded Decimal) - двоично-десятичный код используется для представления чисел, при котором каждая десятичная цифра записывается своим четырехбитовым двоичным эквивалентом. Этот код может оказаться полезным, когда нужно преобразовать строку числовых знаков, например, строку из числовых знаков «2537» в число 2537, над которым затем будут производиться арифметические действия. Расширением этого кода является EBCDIC (Extended Binary-Coded Decimal Interchange Code) - расширенный двоично-десятичный код обмена информацией, который преобразует как числовые, так и буквенные строки.

В ЭВМ, начиная с типа PDP (или СМ) и по сегодняшний день в IBM PC применяется код ASCII (American Standard Code for Information Interchange) - американский стандартный код обмена информацией. Этот код генерируется некоторыми внешними устройствами (принтером, АЦПУ) и используется для обмена данными между ними и оперативной памятью ЭВМ. Например, когда нажимаем на терминале клавишу G, то в результате этого действия код ASCII для символа G (1000111) передается в ЭВМ. А если надо этот символ распечатать на АЦПУ, то его код ASCII должен быть послан на печатающее устройство.

Отечественной версией кода ASCII являлся код КОИ-7 (двоич­ный семибитовый код обмена информацией), который совпадает с ним, за исключением букв русского алфавита. Для использования с национальными алфавитами и прочими символами, не входящими в ASCII чаще всего стала применяться старшая половина пространства 8-битных кодов (128–255), позволяющее использовать до 128 дополнительных символов, чего достаточно для большинства европейских языков.

КОИ-8, KOI8 — восьмибитовая ASCII-совместимая кодовая страница, разработанная для кодирования букв кириллических алфавитов. Разработчики КОИ-8 поместили символы русского алфавита в верхней части кодовой таблицы таким образом, что позиции кириллических символов соответствуют их фонетическим аналогам в английском алфавите в нижней части таблицы. Это означает, что если в тексте, написанном в КОИ-8, убирать восьмой бит каждого символа, то получается «читаемый» текст, хотя он и написан латинскими символами. Например, слова «Русский Текст» превратились бы в «rUSSKIJ tEKST». Как побочное следствие, символы кириллицы оказались расположены не в алфавитном порядке.

Существует несколько вариантов кодировки КОИ-8 для различных кириллических алфавитов, расширяющие определённые коды (общий диапазон 192—255 с 32 русскими буквами в двух регистрах остаётся неизменным во всех вариантах). Русский алфавит описывается в кодировке KOI8-R, украинский — в KOI8-U.

KOI8-R стал фактически стандартом для русской кириллицы в 1990-х годах в юникс-подобных операционных системах и электронной почте.

Юникод (Unicode) — стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков. Стандарт состоит из двух основных разделов: универсальный набор символов (UCS, universal character set) и семейство кодировок (UTF, Unicode transformation format). Универсальный набор символов задаёт однозначное соответствие символов кодам - элементам кодового пространства, представляющим неотрицательные целые числа. Семейство кодировок определяет машинное представление последовательности кодов UCS.

Коды в стандарте Юникод разделены на несколько областей. Область с кодами от U+0000 до U+007F содержит символы набора ASCII с соответствующими кодами. Далее расположены области знаков различных письменностей, знаки пунктуации и технические символы. Часть кодов зарезервирована для использования в будущем.[7] Под символы кириллицы выделены области знаков с кодами от U+0400 до U+052F, от U+2DE0 до U+2DFF, от U+A640 до U+A69F

Универсальная система кодирования (Юникод) представляет собой набор графических символов и способ их кодирования для компьютерной обработки текстовых данных.

Графические символы - это символы, имеющие видимое изображение. Графическим символам противопоставляются управляющие символы и символы форматирования.

Графические символы включают в себя следующие группы:

  • буквы, содержащиеся хотя бы в одном из обслуживаемых алфавитов;

  • цифры;

  • знаки пунктуации;

  • специальные знаки (математические, технические, идеограммы и пр.);

  • разделители.

Юникод — это система для линейного представления текста. Символы, имеющие дополнительные над- или подстрочные элементы, могут быть представлены в виде построенной по определённым правилам последовательности кодов (составной вариант, composite character) или в виде единого символа (монолитный вариант, precomposed character).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]