Лекция · 2.8

Мәтіндік ақпаратты кодтау принциптері

Пернетақтадағы «А» батырмасын бассаң, экранда «А» әрпі шығады. Бірақ компьютер бұл әрпті қалай «есінде сақтайды»? Ол зат емес, тек сан ғана біледі! Демек, әр әріп, тыныс белгісі, тіпті бос орынның өзі белгілі бір санмен «шифрланған». Бүгін дәл осы мәтінді санға айналдыру принциптерін — ASCII-ден бүгінгі Unicode-қа дейінгі жолды үйренеміз.

ASCII — алғашқы стандарт

Компьютер тек санды өңдей алады, сондықтан мәтіндегі әрбір символ (әріп, цифр, тыныс белгісі) санмен «алмастырылуы» керек.

Анықтама
Ақпаратты кодтау — ақпаратты бір түрден екінші түрге (мыс. символдан санға) көшіру процесі. Кодтық кесте — символдар мен оларға сәйкес сандардың реттелген тізімі.

Алғашқы компьютерлерді ағылшын тілділер ойлап тапқандықтан, бірінші кодтық кесте тек ағылшын алфавитіне (26 үлкен + 26 кіші әріп), цифрларға, тыныс белгілеріне және кейбір арнайы символдарға арналды — барлығы 100-ден астам символ.

Анықтама
ASCII (American Standard Code for Information Interchange) — латын әріптері мен символдарды сандармен алмастыратын алғашқы стандартты кодтау. Бастапқыда 7 биттік (2⁷=128 символ), кейін 8 биттік (1 байт, 2⁸=256 символ) болды.
Ондық кодОналтылық кодСимвол
3220(бос орын)
48300
6541A
9761a
905AZ

ASCII кестесі екі бөліктен тұрады: стандартты бөлік (0–127) — латын әліпбиі мен басқару символдары, және кеңейтілген бөлік (128–255) — ұлттық әліпбилерге (орыс, қазақ) арналған, елге қарай ӘРТҮРЛІ болып толтырылады.

⚠️
Мәселе: кеңейтілген бөлік әр елде басқаша болғандықтан, бір компьютерде жазылған қазақша мәтін екінші компьютерде дұрыс кодтау таңдалмаса — түсініксіз таңбалар («кракозябр») болып шығады.
KZ-1048 және басқа ұлттық кодтаулар

ASCII-дің кеңейтілген нұсқасы — ANSI кодтау, оған әр тілдің өз әріптері қосылады. Windows-1251 — орыс алфавитіне арналған танымал ANSI мысалы.

Анықтама
KZ-1048 — 2002 жылы қабылданған, Windows-1251-мен үйлескен қазақ тілінің ресми кодтау стандарты. Онда қазақ әліпбиіне тән қосымша әріптер (Ә, Ө, Ұ, Ү, Қ, Ғ, Ң, Һ, І) кодталған.

Қызығы, орыс тіліне арналған кодтаудың өзі тарихта бірнеше рет өзгерген: 70-жылдары КОИ8, 90-жылдары MS DOS-та CP866, Apple-де жеке Mac кодтау, халықаралық ISO 8859-5. Осындай әртүрліліктің өзі бір үлкен мәселе тудырды — «қай кодтауды қолдансақ, бәрі бір-бірімен үйлесе алады?»

Unicode — жалпыәлемдік шешім

Ондаған әртүрлі ұлттық кодтаудың бәрін жаттап, сәйкестендіріп отыру мүмкін емес еді. 1991 жылы «Юникод консорциумы» бір рет әрі мәңгілікке шешетін стандарт ұсынды.

Анықтама
Юникод (Unicode) — әлемнің БАРЛЫҚ жазбаша тілдерінің әліпбиін біріктірілген түрде қамтитын кодтау стандарты. Алғашқы 128 символы ASCII-мен дәл сәйкес келеді — сол себепті ASCII мәтіндер Unicode-та да дұрыс оқылады.
Кодтау түріСимвол ұзындығыҚолданылу аясы
UTF-8Айнымалы (1–4 байт)Интернет, веб, операциялық жүйелер
UTF-16Айнымалы, кемінде 2 байтWindows
UTF-32Тұрақты 4 байтБарлық мүмкін символды толық қамту

16-биттік Юникод әр символға 2 байт (16 бит) бөледі — бұл N = 2¹⁶ = 65 536 символды кодтауға мүмкіндік береді! ASCII-дің 256 символымен салыстырғанда бұл орасан зор кеңею — енді қазақ, қытай, араб әрпі де, тіпті нота белгілері де сыяды.

💶
Қызық факт: Unicode кестесіндегі соңғы маңызды қосымша — 1998 жылы Евро (€) валюта белгісінің енгізілуі болды.
Мәтін көлемін есептеу

Кодтау түрі мәтіннің КӨЛЕМІНЕ (файл өлшеміне) тікелей әсер етеді — символ санын кодтағы бит санына көбейту жеткілікті.

Есеп (орта): хабарлама көлемін есептеу

Берілді: «Сен жоғары сынып оқушысысың» хабарламасы, ұзындығы 27 символ.

Табу керек: осы хабарламаның ASCII (8 бит/символ) және Unicode (16 бит/символ) кодтауындағы көлемі.

Неге әртүрлі көлем шығады? ASCII әр символға 8 бит бөлсе, Unicode — 2 есе көп, 16 бит бөледі, сол себепті бірдей мәтін Unicode-та ЕКІ ЕСЕ КӨП орын алады.

  • ASCII (8 бит): 27 × 8 = 216 бит (27 байт)
  • Unicode (16 бит): 27 × 16 = 432 бит (54 байт)

Жауабы: ASCII бойынша — 216 бит, Unicode бойынша — 432 бит (екі есе көп).

🎯 ҰБТ байланысы
Мәтін көлемін есептеу формуласы мен кодтау стандарттарының ерекшелігі жиі сұралады.
1
Мәтін көлемі = символ саны × 1 символдың бит саны (ASCII=8, Unicode=16).
2
ASCII-дің 128 символы БАРЛЫҚ кодтауда бірдей — тек кеңейтілген бөлік ел бойынша ерекшеленеді.
3
KZ-1048 — қазақ тілінің ресми кодтауы, Ә/Ө/Ұ/Ү/Қ/Ғ/Ң/Һ/І әріптерін қамтиды.
Сабақ қорытындысы
  • Компьютер тек санды өңдейді, сондықтан мәтін символдары кодтық кесте арқылы сандарға түрлендіріледі.
  • ASCII — алғашқы стандарт, 256 символ (латын + ел бойынша ерекшеленетін кеңейтілген бөлік).
  • KZ-1048 — қазақ тілінің ресми ANSI-негізді кодтауы.
  • Unicode — әлемнің барлық тілін бір стандартқа біріктіретін заманауи шешім (UTF-8, UTF-16, UTF-32).
  • Мәтін көлемін есептеу: символ саны × символдың бит саны (ASCII=8 бит, Unicode=16 бит).