МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Матвейчук Т. А.
Основи представлення даних
в пам'яті комп'ютера
Конспект лекцій ( частина І )
з дисципліни
" Програмування. Частина III.
Структури даних та алгоритми "
Львів – 2010
Матвейчук Т. А. Основи представлення даних в пам'яті комп'ютера: Конспект лекцій (частина І ) з дисципліни “Програмування. Частина IIІ. Структури даних та алгоритми". – Львів: Видавництво НУ “Львівська політехніка”, 2010 – 37 с.
Укладач: Матвейчук Т.А., ст. викладач каф.ЕОМ
Відповідальний
за випуск: Мельник А.О., д-р техн. наук, проф.
Рецензенти: Мороз І.В., ст. викладач каф.ЕОМ
Юрчак І.Ю., доцент кафедри САПР, к.т.н.
1. Поняття інформації та основні форми її подання
Термін "інформація" походить від латинського слова "informatio", що означає роз’яснення, виклад. Хоч людина постійно має справу з інформацією, але наукового визначення, що таке інформація, не існує. Тоді говорять не про визначення, а про поняття, що, в залежності від обставин, може мати різний зміст. Наприклад, у побуті під інформацією розуміють всі відомості, які людина одержує від природи і суспільства з допомогою органів чуттів. Математик це поняття розглядатиме ширше, включивши в нього відомості, які людина не одержує, а створює сама з допомогою висновків. Біолог може добавити до цієї інформації дані, які людина містить в собі – спадковий генетичний код і т.д. Отже, інформація - абстрактне поняття, що має різні значення залежно від контексту. Можна дати таке визначення інформації: інформація - сукупність відомостей про всілякі об'єкти, явища, процеси. При всьому різноманітті, інформація володіє чотирма спільними основними властивостями: інформацію можна створювати, передавати, зберігати і опрацьовувати.
Найважливішими, з практичної точки зору, властивостями інформації є цінність, достовірність та актуальність. Цінність інформації — визначається забезпеченням можливості досягнення мети, поставленої перед отримувачем інформації. Достовірність — відповідність отриманої інформації об'єктивній реальності навколишнього світу. У властивості достовірності виділяються безпомилковість та істинність даних а також адекватність. Під безпомилковістю розуміється властивість даних не мати прихованих випадкових помилок. Випадкові помилки в даних обумовлені, як правило, ненавмисними спотвореннями змісту людиною чи збоями технічних засобів при переробці даних в інформаційній системі. Актуальність — це міра відповідності цінності та достовірності інформації поточному часу (певному часовому періоду) . Дані, спеціально відібрані для конкретного рівня користувачів, володіють такою властивістю , як вибірковість.
Інформація володіє часовими властивостями. Часові властивості визначають здатність даних передавати динаміку зміни ситуації (динамічність). При цьому можна розглядати або час запізнення появи в даних відповідних ознак об'єктів, або розходження реальних ознак об'єкта і тих же ознак, що передаються даними. Відповідно можна виділити:
актуальність — властивість даних, що характеризує поточну ситуацію;
оперативність — властивість даних, яка полягає в тому, що час їх збору та переробки відповідає динаміці зміни ситуації;
ідентичність — властивість даних відповідати стану об'єкту.
Інформація володіє властивістю недоступності. При розгляді захищеності даних можна виділити технічні аспекти захисту даних від несанкціонованого доступу та соціально-психологічні аспекти класифікації даних за мірою їх конфіденційності та секретності (властивість конфіденційності).
Можна також виділити і інші властивості інформації. Суспільна природа — джерелом інформації є пізнавальна діяльність людей, суспільства. Мовна природа — інформація виражається за допомогою мови — знакової системи будь-якої природи, яка служить засобом спілкування, мислення, висловлювання думки. Мова може бути природною, що використовується у повсякденному житті та служить формою висловлення думок і засобом спілкування між людьми а також штучною, створеною людьми з певною метою (наприклад, мова математичної символіки, інформаційно-пошукова, алгоритмічна та ін. мови). Дискретність інформації — одиницями інформації як засобами висловлювання є слова, речення, уривки тексту, а у плані змісту — поняття, висловлювання, описання фактів, гіпотези, теорії, закони тощо. Старіння інформації — головною причиною старіння інформації є не сам час, а поява нової інформації, з надходженням якої попередня інформація виявляється невірною, перестає адекватно передавати явища та закономірності матеріального світу, людського спілкування та мислення. Розсіювання інформації — існування у багатьох джерелах.
Основними формами подання інформації є символьна, текстова і графічна.
Символьна форма ґрунтується на використанні символів — літер, цифр, знаків і т. д., є найбільш простою і практично застосовується тільки для передачі сигналів про різні події.
Більш складною є текстова форма подання інформації. Тут, як і в попередній формі, використовуються символи — літери, цифри, математичні знаки. Однак інформація закладена не тільки в цих символах, але й у їх сполученні, порядку проходження. Завдяки взаємозв'язку символів і відображенню мови людини текстова інформація надзвичайно зручна і широко використовується в повсякденному житті.
Найбільш місткою, але і найбільш складною є графічна форма подання інформації. Образи природи, фотографії, креслення, схеми, малюнки мають велике значення в нашому житті і містять величезну кількість інформації. І хоча інформація не має ні маси, ні геометричних розмірів, жодних фізичних або хімічних властивостей, проте для її існування обов'язкова наявність якогось матеріального об'єкта, що передає або зберігає інформацію. Таких об'єктів досить багато, і їхня кількість увесь час зростає.
2. Представлення даних в пам’яті комп'ютера
Дані є складовою частиною інформації, що являють собою зареєстровані сигнали. Під час інформаційного процесу дані перетворюються з одного виду в інший за допомогою методів. Обробка даних містить в собі множину різних операцій. Основними операціями є:
1) збір даних - накопичення інформації з метою забезпечення достатньої повноти для прийняття рішення;
2) формалізація даних - приведення даних, що надходять із різних джерел до однакової форми;
3) фільтрація даних - усунення зайвих даних, які не потрібні для прийняття рішень;
4) сортування даних - впорядкування даних за заданою ознакою з метою зручності використання;
5) архівація даних - збереження даних у зручній та доступній формі;
6) захист даних - комплекс дій, що скеровані на запобігання втрат, відтворення та модифікації даних;
7) транспортування даних - прийом та передача даних між віддаленими користувачами інформаційного процесу. Джерело даних прийнято називати сервером, а споживача - клієнтом;
8) перетворення даних - перетворення даних з однієї форми в іншу, або з однієї структури в іншу, або зміна типу носія.
Для автоматизації роботи з даними, що відносяться до різних типів, важливо уніфікувати їх форму представлення. Для цього, як правило, використовується прийом кодування, тобто представлення даних одного типу через дані іншого типу. Універсальні засоби кодування успішно втілюються в різноманітних галузях техніки, науки та культури - математичні вирази, телеграфна азбука, морська азбука, азбука для сліпих тощо. Своя система кодування існує й в інформатиці, і називається вона двійковим кодом. Ґрунтується вона на представленні даних послідовністю двох знаків: (бітів) 0 та 1. Байт — найменша адресована одиниця пам'яті ЕОМ. Містить 8 бітів. інформації.
Одиниці виміру обсягу даних :
1 КБ (кілобайт) = 210 байт = 1024 байт;
1 МБ (мегабайт) = 210 КБ = 1024 КБ = 220 байт;
1 ГБ (гігабайт) = 210 МБ = 1024 МБ = 230 байт;
1 ТБ (терабайт) = 210 ГБ = 1024 ГБ = 240 байт;
1 ПБ (петабайт) = 210 ТБ = 1024 ТБ = 250 байт;
1 ЕБ (ексабайт) = 210 ПБ = 1024 ПБ = 260 байт;
1 ЗБ (зетабайт) = 210 ЕБ = 1024 ЕБ = 270 байт;
1 ЙБ (йотабайт) = 210 ЗБ = 1024 ЗБ = 280 байт;
3. Класифікація типів даних
Основна мета будь-якої програми полягає в обробці даних. Дані різних типів зберігаються в пам’яті комп’ютера і обробляються по-різному. Згідно з концепцією типів даних, кожний тип даних однозначно визначає:
множину значень, які може приймати змінна заданого типу;
операції та функції, які можна застосовувати до цієї змінної;
внутрішнє представлення змінної у пам'яті комп'ютера.
Нагадаємо, що пам'ять виділяється не для типу даних, а для розміщення змінних або констант певних типів.
В мові С++ розрізняють наступні категорії типів:
базові (або прості, основні, стандартні) типи даних;
похідні (або складні, складені) типи даних.
Базові типи мають імена, які є ключовими словами мови. До базових типів відносяться: скалярні типи і порожній тип (void).
Скалярні типи діляться на цілочисельні і дійсні типи (float, double, long double). Логічний тип (bool), символьні (char, wchar_t) та цілі (short, int, long) типи даних відносяться до цілочисельних типів. Для них визначені всі операції роботи з цілими числами.
Похідні типи визначаються на основі базових типів. Похідні типи діляться на скалярні і структуровані (або агрегатні).
До скалярних похідних типів відносяться:
- переліки (enum) ;
- вказівники (ім'я_типу *);
- посилання (ім'я_типу &).
До структурованих похідних типів відносяться:
- масиви;
- структури (struct);
- об'єднання (union);
- класи (class).
В структурах, об'єднаннях і класах можуть використовуватись бітові поля.
Для явного задання діапазону можна використовувати такі специфікатори:
Специфікатори short (короткий) і long (довгий) застосовуються до цілих. У таких оголошеннях слово int можна опускати, що зазвичай й робиться. Найчастіше для представлення цілого, описаного з специфікатором short, виділяється 16 біт, із специфікатором long - 32 біта, а значенню типу int - або 16, або 32 біта.
Специфікатори signed (зі знаком) або unsigned (без знака) можна застосовувати до будь-якому цілочисельного типу. Вони вказують, як інтерпретується нульовий біт змінної, тобто, якщо зазначено ключове слово unsigned, то нульовий біт інтерпретується як частина числа, у противному випадку нульовий біт інтерпретується як знаковий. У випадку відсутності ключового слова unsigned змінна вважається знаковою.
4. Базові типи даних
4.1. Порожній тип
Порожній тип (void) синтаксично поводиться як базовий тип. Однак використовувати його можна тільки як частину похідного типу, оскільки об'єктів типу voіd не існує. Він використовується для того, щоб вказати, що функція не повертає ніякого значення, або як базовий тип для вказівників на об'єкти невідомого типу, наприклад:
void f() // функція f не повертає ніякого значення
void* pv; // вказівник на объект невідомого типу
4.2. Логічний тип даних
В мові C++ логічний тип (bool) характеризується двома значеннями: false (0) і true (1). На відміну від мови С++ в мові С логічний тип даних іменується Bool, але при включенні заголовочного файлу <stdbool.h> можна використовувати ключові слова bool, true, false.
В пам'яті комп'ютера змінна типу bool займає 1 байт. Логічні значення можна асоціювати зі значеннями типу int: значенню false відповідає нуль, значенню true відповідають всі інші числа.
В арифметичних і логічних виразах логічні значення перетворюються в цілі числа. Арифметичні та бітові логічні операції виконуються над перетвореними величинами. Якщо результат приводиться знову до логічного типу, то 0 перетворюється в false, а ненульове значення перетворюється в true.
Приклад 1.
bool x = true; // в пам’яті комп’ютера змінна х зберігається як послідовність: 0000 0000
bool y = false; // в пам’яті комп’ютера змінна y зберігається як послідовність: 0000 0001
bool a = 2*x+y; // значення виразу 2*x+y дорівнює 2, тому змінна a отримує значення
// true (1); отже, в пам’яті комп’ютера змінна a зберігається як наступна
// послідовність біт: 0000 0001 (або в 16-ковій системі числення як 01).
4.3. Символьні типи даних
Ідентифікатором символьного типу є ключове слово char.
Символьні константи (символьні літерали) можна представляти як:
клавіатурні: '1','s','Y' – записуються як символи в одинарних лапках;
кодові: '\n','\\','\?', які використовуються для представлення деяких керуючих символів та символів-розділювачів – записуються як escape-послідовності (вони починаються з символу зворотної косої риски). Перелік кодових символьних літералів наведено в Таблиці 4.1.
Таблиця 4.1.
Назва
Кодові символьні літерали
Код
Дзвінок
\a
07
Забій (повернення на крок)
\b
08
Горизонтальна табуляція
\t
09
Перехід на новий рядок
\n
0A
Вертикальна табуляція
\v
0B
Прогін аркуша
\f
0C
Повернення каретки
\r
0D
Знак питання
\?
3F
Зворотня коса риска
\\
5C
Подвійні лапки
\"
22
Апостроф
\'
27
Ноль-символ
\0
00
3) кодові числові: '\0','\x5C','\124', які використовуються для представлення будь-яких символів – записуються у вигляді однієї, двох або трьох вісімкових цифр з символом зворотної косої риски ( \ ) перед ними або довільним шістнадцятковим числом з послідовністю \х перед ним. Послідовність вісімкових або шістнадцяткових цифр закінчується першим символом, який не є відповідно вісімковою або шістнадцятковою цифрою. Приклади таких представлень наведені в Таблиці 4.2.
Таблиця 4.2.
Десяткова
Вісімкова
Шістнадцяткова
Символ
7
'\7'
'\x7'
Дзвінок
48
'\60'
'\x30'
'0'
50
'\062'
'\x32'
'2'
95
'\137'
'\x005f'
'_'
Значеннями змінних типу char є множина символів таблиці ASCII (American Standard Code For Information Interchange – американський стандартний код для обміну інформацією). Таблиця кодів ASCІІ містить 256 символів, кожний з яких має строго визначене місце і свій порядковий номер від 0 до 255. Код символу - це його порядковий номер у таблиці символів ASCІІ.
Таблиця кодів ASCІІ складається з 2 таблиць:
1. Основної ( з кодами від 0 до 127). Вона містить у собі:
- символи керування,
- символи арифметичних операцій, розділові знаки, цифри,
- букви латинського алфавіту (прописні, рядкові).
2. Розширеної ( з кодами від 128 до 255). Вона містить у собі:
- символи псевдографіки (символи, що застосовуються для побудови найпростіших фігур),
- букви національних алфавітів,
- математичні символи.
Всі символи, крім символів керування, є графічними. Вони на пристроях зображення відображаються, а в таблиці кодів ASCІІ мають графічне зображення.
Символи з кодами від 0 до 31 і код 127 відносяться до керуючих. В текстовому режимі їм відповідають графічні зображення. При використанні цих символів або кодів в операціях виведення вони набувають самостійного значення. Приклади символів керування наведені в Таблиці 4.3.
Таблиця 4.3
Символ
Код
Значення
BEL
7
Дзвоник. Виведення на екран цього символу супроводжується звуковим сигналом.
НТ
9
Горизонтальна табуляція. При виведенні на екран зміщує курсор у позицію, кратну 8 плюс 1 (9, 17, 25 і т.д.).
LF
10
Перехід рядка. При виведенні його на екран всі наступні символи будуть виводитися, починаючи з тієї ж позиції, але на наступному рядку.
VT
11
Вертикальна табуляція. При виведенні на екран замінюється спеціальним знаком (♂).
FF
12
Прогін сторінки. При виведенні на принтер формує нову сторінку, при виведенні на екран замінюється спеціальним знаком (♀).
CR
13
Повернення каретки. Вводиться натисканням на клавішу Enter. При введенні за допомогою операторів мови програмування означає команду "введення" і в буфер введення не кладеться. При виведенні означає команду "продовжити виведення з початку біжучого рядка"
SUB
26
Кінець файлу. Вводиться з клавіатури натисканням Ctrl - Z. При виведенні заміняється спеціальним знаком (→).
SSC
27
Кінець роботи. Вводиться з клавіатури натисканням на клавішу ESC. При виведенні заміняється спеціальним знаком (←).
Перша основна половина символів таблиці ASCII (коди 0...127) побудована по стандарту ASCІІ і вона є однаковою на всіх ІBM-сумісних комп’ютерах. Принцип послідовного кодування алфавіту полягає в тому, що в кодовій таблиці ASCII латинські букви (прописні та строчні) розташовуються в алфавітному порядку. Розташування цифр також впорядковано по зростанню їх значень.
Друга половина символів (коди 128...255) може відрізнятися на комп’ютерах різного типу. У стандартному знакогенераторі фірми ІBM символи псевдографіки займають позиції з кодами від 176 до 223. Позиції з кодами від 128 до 175 і від 224 до 239 використовуються для розміщення деяких символів національних алфавітів різних європейських мов, а позиції з кодами від 240 до 255 - для розміщення спеціальних знаків. З врахуванням цього розташування символів розробляється переважна більшість програм закордонного походження.
Стандартний вітчизняний знакогенератор був побудований за рекомендаціями Міжнародного консультаційного комітету з телеграфії і телефонії (МККТТ). Розташування символів у другій половині таблиці цього знакогенератора відрізнялось від прийнятого фірмою ІBM, що утруднювало використання закордонного програмного забезпечення на вітчизняних ПК. У зв'язку з цим, стандартний варіант кодування був заміняний альтернативним, головна перевага якого - розташування символів псевдографіки на тих же місцях, що й у знакогенераторі ІBM. Недолік такого знакогенератора полягає у тому, що символи кирилиці не утворюють безперервну послідовність. Такий варіант у даний час одержав найбільше поширення на вітчизняних ПК. Саме на нього розраховані практично всі програми вітчизняного виробництва. Він став фактичним стандартом для закордонних фірм, що виготовляють комп'ютери для експорту в нашу країну.
Таблиця символів ASCII наведена в Таблиці 4.4. В ній прийняті такі позначення:
DEC – код в 10-ковій системі числення,
HEX – код в 16-ковій системі числення,
CH – символ.
Таблиця 4.4
DEC
HEX
CH
DEC
HEX
CH
DEC
HEX
CH
DEC
HEX
CH
DEC
HEX
CH
DEC
HEX
CH
DEC
HEX
CH
DEC
HEX
CH
0
0
32
20
64
40
@
96
60
`
128
80
А
160
A0
а
192
C0
└
224
E0
р
1
1
☺
33
21
!
65
41
A
97
61
a
129
81
Б
161
A1
б
193
С1
┴
225
El
с
2
2
☻
34
22
“
66
42
B
98
62
b
130
82
В
162
A2
в
194
C2
┬
226
E2
т
3
3
♥
35
23
#
67
43
C
99
63
c
131
83
Г
163
A3
г
195
C3
├
227
E3
у
4
4
♦
36
24
$
68
44
D
100
64
d
132
84
Д
164
A4
д
196
C4
─
228
E4
ф
5
5
♣
37
25
%
69
45
E
101
65
e
133
85
Е
165
A5
е
197
C5
┼
229
E5
х
6
6
♠
38
26
&
70
46
F
102
66
f
134
86
Ж
166
A6
ж
198
C6
╞
230
E6
ц
7
7
•
39
27
'
71
47
G
103
67
g
135
87
З
167
A7
з
199
C7
╟
231
E7
ч
8
8
◘
40
28
(
72
48
H
104
68
h
136
88
И
168
A8
и
200
C8
╚
232
E8
ш
9
9
○
41
29
)
73
49
I
105
69
i
137
89
Й
169
A9
й
201
C9
╔
233
E9
щ
10
A
◙
42
2A
*
74
4A
J
106
6A
j
138
8A
К
170
AA
к
202
CA
╩
234
EA
ъ
11
B
♂
43
2B
+
75
4B
K
107
6B
k
139
8B
Л
171
AB
л
203
CB
╦
235
EB
ы
12
C
♀
44
2C
,
76
4C
L
108
6C
1
140
8C
М
172
AC
м
204
CC
╠
236
EC
ь
13
D
♪
45
2D
-
77
4D
M
109
6D
m
141
8D
Н
173
AD
н
205
CD
═
237
ED
э
14
E
♫
46
2E
.
78
4E
N
110
6E
n
142
8E
О
174
AE
о
206
CE
╬
238
EE
ю
15
F
☼
47
2F
/
79
4F
O
111
6F
o
143
8F
П
175
AF
п
207
CF
╧
239
EF
я
16
10
◙
48
30
0
80
50
P
112
70
p
144
90
Р
176
B0
░
208
D0
╨
240
F0
Ё
17
11
◄
49
31
1
81
51
Q
113
71
q
145
91
С
177
В1
▒
209
Dl
╤
241
Fl
ё
18
12
↕
50
32
2
82
52
R
114
72
r
146
92
Т
178
B2
▓
210
D2
╥
242
F2
Є
19
13
‼
51
33
3
83
53
S
115
73
s
147
93
У
179
B3
│
211
D3
╙
243
F3
є
20
14
¶
52
34
4
84
54
T
116
74
t
148
94
Ф
180
B4
┤
212
D4
╘
244
F4
Ї
21
15
§
53
35
5
85
55
U
117
75
u
149
95
Х
181
B5
╡
213
D5
╒
245
F5
ї
22
16
▬
54
36
6
86
56
V
118
76
v
150
96
Ц
182
B6
╢
214
D6
╓
246
F6
І
23
17
↨
55
37
7
87
57
W
119
77
w
151
97
Ч
183
B7
╖
215
D7
╫
247
F7
і
24
18
↑
56
38
8
88
58
X
120
78
x
152
98
Ш
184
B8
╕
216
D8
╪
248
F8
°
25
19
↓
57
39
9
89
59
Y
121
79
y
153
99
Щ
185
B9
╣
217
D9
┘
249
F9
•
26
1A
→
58
3A
:
90
5A
Z
122
7A
z
154
9A
Ъ
186
BA
║
218
DA
┌
250
FA
·
27
1B
←
59
3B
;
91
5B
[
123
7B
{
155
9B
Ы
187
BB
╗
219
DB
█
251
FB
√
28
1C
∟
60
3C
<
92
5C
\
124
7C
|
156
9C
Ь
188
BC
╝
220
DC
▄
252
FC
№
29
ID
(
61
3D
=
93
5D
]
125
7D
}
157
9D
Э
189
BD
╜
221
DD
▌
253
FD
¤
30
1E
▲
62
3E
>
94
5E
^
126
7E
~
158
9E
Ю
190
BE
╛
222
DE
▐
254
FE
■
31
IF
▼
63
3F
?
95
5F
_
127
7F
⌂
159
9F
Я
191
BF
┐
223
DF
▀
255
FF
В пам’яті комп’ютера дані символьного типу зазвичай займають 1 байт. В цей байт записується порядковий номер символа в таблиці ASCII.
Приклад 2.
За системою ASCII символ ’O’ має порядковий номер 7910 = 4F16 = 10011112
Отже, цей символ в пам’яті комп’ютера буде представлений як послідовність 0100 1111.
Оскільки значенню типу char відводиться 8 бітів, то значення типу unsigned char має значення в діапазоні від 0 до 255, a signed char – від -128 до 127, але тільки величини від 0 до 127 мають символьний еквівалент. Чи є значення типу просто char знаковим чи беззнаковим, залежить від реалізації, але в будь-якому випадку коди друкованих символів завжди є додатніми. Далі будемо вважати, що тип char є знаковим.
Таблиця 4.5
Тип
Розмір пам'яті в байтах 16 (32)
Діапазон значень
[signed] char
1 (1)
-128..127
unsigned char
1 (1)
0..255
Для представлення символів українського алфавіту, специфікатор типу даних повинен мати вигляд unsigned char, тому що коди українських літер перевищують величину 127.
Протягом довгого часу поняття "байт" і "символ" були майже синонімами. Однак, з часом, стало зрозуміло, що 256 різних символів – це не так і багато. Математикам необхідно використовувати в формулах спеціальні математичні знаки, перекладачам необхідно створювати тексти, де можуть зустрічатися символи з різних алфавітів, економістам необхідні символи валют ($, £, ¥). Для вирішення цих проблем була розроблена універсальна система кодування текстової інформації – Unicode. В цьому кодуванні для кожного символа відводиться не один, а два байта, тобто шістнадцять біт. Таким чином, доступно 65536 (=216) різних кодів. Цього вистарчить на латинський алфавіт, кирилицю, іврит, африканські і азіатські мови, різні спеціальні символи: математичні, економічні, технічні і багато іншого. Головний недолік системи Unicode полягає в тому, що всі тексти в цьому кодуванні стають в два рази довшими в пам’яті комп’ютера. В даний час стандарти ASCII і Unicode мирно співіснують.
Символьна константа може мати префікс L (наприклад, L'a'), який означає спеціальний розширений символьний тип (wchar_t), що застосовується для зберігання символів національних алфавітів, якщо вони не можуть бути представлені звичайним однобайтовим типом char, наприклад, Unicode. Розмір цього типу залежить від реалізації; як правило, він відповідає типу short і займає 2 байта пам'яті.
В стандарті С99 тип wchar_t визначений в декількох заголовних файлах: <stddef.h> <stdlіb.h> <wchar.h> <wctype.h>. В мові С++ реалізується підтримка введення - виведення для розширених символів за допомогою заголовного файлу <іostream.