Символьний тип

 

Значенням символьного типу char є символи з деякої визначеної множини. У більшості сучасних персональних ЕОМ цією множиною є ASCІІ-код (Amerіcan Standard Code for Іnformatіon Іntechange – американський стандартний код для обміну інформацією). Ця множина складається з 256 різних символів, упорядкованих певним чином і містить символи великих та малих літер, цифр і інших символів, включаючи спеціальні керуючі символи. Допускаються деякі відхилення від стандарту ASCІІ, зокрема, при наявності відповідної системної підтримки ця множина може містити літери російського алфавіту.

Значення символьного типу char займає в пам'яті 1 байт. Код від 0 до 255 у цьому байті задає один з 256 можливих символів ASCІІ таблиці. Наприклад: символ "1" має ASCІІ код 49, отже, машинне представлення символу "1" буде виглядати так: 00110001.

ASCІІ, однак, не є єдиною можливою множиною кодів. Іншою використовуваною множиною є код EBCDІ (Extended Bіnary Coded Decіmal Іnterchange Code – розширений двійково-кодований десятковий код обміну), застосовуваний у системах ІBM середньої й великої потужності. У EBCDІ код символу також займає один байт, але з іншим кодуванням, чим у ASCІІ. Однак визначені деякі символи, що мають стандартні імена, у яких як керуючий символ використовується зворотний слеш:

'b' - повернення на крок, забій; 'n'- новий рядок, переведення рядка;

'r' - повернення маркеру; ''- нульовий символ (число) 0;

'v' - вертикальна табуляція; 'f' - горизонтальна табуляція.

Таблиці ASCІІ і EBCDІ містять у собі буквені символи тільки латинського алфавіту. Символи національних алфавітів займають "вільні місця" у таблицях кодів і, таким чином, одна таблиця може підтримувати тільки один національний алфавіт. Цей недолік усунено у множині UNІCODE, що знаходить все більше поширення, насамперед у UNIX-орієнтованих системах. У UNІCODE кожен символ кодується двома байтами.

Наприклад: символ "1" кодується як 0031 (шістнадцяткова система), отже, машинне представлення символу "1" буде: 00000000 00110001.

UNІCODE забезпечує понад 64 тис. можливих кодових комбінацій і дає можливість мати єдину таблицю кодів, що включає в себе всі національні алфавіти. Така кодова таблиця, безумовно, є перспективною, однак, повсюдний перехід до двобайтових кодів символів може викликати необхідність переробки значної частини існуючого програмного забезпечення. Для одержання переносимих програм рекомендується при програмуванні використовувати символьні константи замість їхніх кодів.

Специфічні операції над символьними типами – тільки операції порівняння. При порівнянні коди символів розглядаються як цілі числа без знака. Кодові таблиці будуються так, що результати порівняння підпорядковуються лексикографічним правилам: символи, що займають в алфавіті місця з меншими номерами, мають менші коди, чим символи, що займають місця з великими номерами. В основному символьний тип даних використовується як базовий для побудови інтегрованого типу "рядок символів".