Представлення в ЕОМ символьної інформації

Як згадувалося раніше, комп'ютери можуть обробляти лише інформацію, представлену в числовій формі. Не є виключенням і символьна інформація, на долю якої в загальному об'ємі обчислювальних дій доводиться все більша частка. Символьна інформація - це букви, цифри, знаки перепинання, математичні, псевдографічні і інші символи. Кожному символу ставиться у відповідність певна двійкова комбінація. Сукупність можливих символів і призначених їм двійкових кодів утворює таблицю кодування.

У теперешній час застосовується велика кількість різних таблиць кодування. Об'єднує їх ваговий принцип, при якому ваги кодів цифр зростають у міру збільшення цифри, а ваги символів збільшуються в алфавітному порядку. Так двійковий код букви «B» на одиницю більше кода букви «А». Це сприяє спрощенню обробки символів на ЕОМ.

До недавнього часу найбільш поширеними були однобайтні кодировки, в яких символи кодуються за допомогою восьмирозрядних двійкових комбінацій, що дозволяють представити 256 різних символів:

· розширений двійково-кодований код EBCDIC (Extended Binary Coded Decimal Interchange Code);

· американський стандартний код для обміну інформацією ASCII (American Standard Code for Information Interchange).

Код EBCDIC використовується як внутрішній код в универсальных ЕОМ фірми IBM. Він же відомий під назвою ДКОІ (двійковий код для обробки інформації).

Стандартний код ASCII — 7-розрядний, восьма позиція відводиться для запису біта парності. Це забезпечує представлення 128 символів, включаючи всі латинські букви, цифри, знаки основних математичних операцій і знаки пунктуації.

Пізніше з'явилася модифікація ASCII для Європи , звана Latin 1 (стандарт ISO 8859-1). У ній інформацію про символ несуть всі 8 розрядів. Додаткові комбінації (коди 128-255) в новому варіанті відводяться для представлення специфічних букв алфавітів мов західної Європи, символів псевдографіки, деяких букв грецького алфавіту, а також ряду математичних і фінансових символів. Саме ця кодова таблиця вважається світовим стандартом де-факто, який застосовується з різними модифікаціями у всіх країнах. Залежно від використання кодів 128-255 розрізняють декілька варіантів стандарту ISO 8859, у тому числі ISO 8859-5, що включає символи кирилиці.

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

Приклад кодування символів з кодової таблиці ASCII:

 

4116 A 5016 P 2B16 +

4216 B 5116 Q 2C16 ,

4316 C 5216 R 2D16 -

. . . . . . . . 2E16 .

4F16 0 5A16 Z

 

При роботі в операційній системі Windows використовується таблиця кодів СР-1251 (Windows-1251), в якій кодування латинських букв збігається з кодуванням ASCII, а друга половина таблиці має власне кодування символів.

Разом з алфавітно-цифровими символами в кодовій таблиці закодовані керуючі сигнали. Наприклад, код з номером 13 заставляє друкуючу голівку принтера повернутися на початок поточного рядка, а код з номером 10 переміщає папір, заправлений в принтер, на один рядок вперед.

Хоча код ASCII досить зручний, він все ж дуже тісний і не вміщає усіх необхідних символів. З цієї причини в 1993 році консорціумом компаній Apple Computer, Microsoft, Hewlett-Packard, DEC і IBM був розроблений 16-бітовий стандарт ISO 10646, що визначає універсальний набір символів (UCS, Universal Character Set). Новий код, відомий під назвою Unicode, дозволяє задати до 65536 символів, тобто дає можливість одночасно представити символи всіх основних «живих» і «мертвих» мов. Для букв кирилиці виділені коди 1040-1093.

У «природному» варіанті кодировки Unicode, відомому як UCS-2, кожен символ описується двома послідовними байтами m і n, так що номеру символу відповідає чисельне значення 256 х m + n. Таким чином, кодовий номер представлений 16-розрядним двійковим числом. Наряду з UCS-2 в рамках Unicode існують ще декілька варіантів кодування (UTF, Unicode Transformation Formats), основні з яких UTF-8 і UTF-7.

Стандарт Unicode обратно сумісний з кодировкой ASCII. Вперше він був використаний в операційній системі Windows NT і активно використовується в сучасних операційних системах, текстових процесорах і т.п. Розподіл кодів в Unicode ілюструє таблиця 2.1:

 

Таблиця 2.1.

Коди Символи
0-8191 Алфавіти — англійський, європейські, фонетичний, кирилиця, вірменський, іврит, арабський, ефіопський, бенгали, деванагари, гур, гуджарати, ория, телугу, таміл, каннада, малайський, сингальский, грузинський, тибетський, тайський, лаоський, кхмерський, монгольський
8192-12287 Знаки пунктуації, математичні оператори, технічні символи, орнаменти і т.п.
12288-16383 Фонетичні символи китайского, корейского і японського мов
16384-59391 Китайські, корейскі, японські ієрогліфи. Єдиний набір символів каліграфії хань
59392-65024 Блок для приватного використання
65025-65536 Блок забезпечення сумісності з програмним забезпеченням